gastownhall/beads · error

jira.url not configured Run: bd config set jira.url "https:/

Error message

jira.url not configured
Run: bd config set jira.url "https://company.atlassian.net"

What it means

validateJiraConfig requires the Jira instance URL before syncing. It reads the 'jira.url' config key; if empty, it returns this fixed message telling the user the exact config command. The Jira integration cannot form API requests without a base URL.

Source

Thrown at cmd/bd/jira.go:340

	if pendingPush > 0 {
		fmt.Println()
		fmt.Printf("Run 'bd jira sync --push' to push %d local issue(s) to Jira\n", pendingPush)
	}
	return nil
}

// validateJiraConfig checks that required Jira configuration is present.
func validateJiraConfig() error {
	if err := ensureStoreActive(); err != nil {
		return fmt.Errorf("database not available: %w", err)
	}

	ctx := rootCtx
	jiraURL, _ := store.GetConfig(ctx, "jira.url")

	if jiraURL == "" {
		return fmt.Errorf("jira.url not configured\nRun: bd config set jira.url \"https://company.atlassian.net\"")
	}

	// Check for project configuration (singular or plural).
	pluralProjects, _ := store.GetConfig(ctx, "jira.projects")
	singularProject, _ := store.GetConfig(ctx, "jira.project")
	projectKeys := tracker.ResolveProjectIDs(nil, pluralProjects, singularProject)
	if len(projectKeys) == 0 {
		return fmt.Errorf("no Jira project configured\nRun: bd config set jira.project \"PROJ\"\nOr:  bd config set jira.projects \"PROJ1,PROJ2\"")
	}

	apiToken, _ := store.GetConfig(ctx, "jira.api_token")
	if apiToken == "" && os.Getenv("JIRA_API_TOKEN") == "" {
		return fmt.Errorf("Jira API token not configured\nRun: bd config set jira.api_token \"YOUR_TOKEN\"\nOr: export JIRA_API_TOKEN=YOUR_TOKEN")
	}

	return nil
}

View on GitHub (pinned to 71377f2769)

Solutions

  1. Run: bd config set jira.url "https://company.atlassian.net"
  2. Verify with: bd config get jira.url
  3. Re-run the jira subcommand; other required keys (project, API token) are validated next

Example fix

// before
$ bd jira sync
jira.url not configured
// after
$ bd config set jira.url "https://company.atlassian.net"
$ bd jira sync
Defensive patterns

Strategy: validation

Validate before calling

url, _ := store.GetConfig(ctx, "jira.url")
if strings.TrimSpace(url) == "" {
    return errors.New(`jira.url not configured: bd config set jira.url "https://company.atlassian.net"`)
}

Try / catch

if err := runJiraSync(cmd, args); err != nil {
    if strings.Contains(err.Error(), "jira.url not configured") {
        fmt.Fprintln(os.Stderr, "Set jira.url first: bd config set jira.url <url>")
        os.Exit(1)
    }
    return err
}

Prevention

When it happens

Trigger: Running `bd jira sync|push|pull` in a workspace where `jira.url` was never set (or was set to an empty string) via `bd config set`.

Common situations: Fresh workspace where Jira was configured on another machine but config keys were never committed/synced; typo'd key name (e.g., jira_url); team onboarding without the setup doc.

Related errors


AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30). Data as JSON: /api/errors/e42865c795b0b62a. Report an issue: GitHub.