gastownhall/beads · error

parent issue %q not found

Error message

parent issue %q not found

What it means

In the proxied hierarchical path, GetIssue returning (nil, nil) — i.e. the parent does not exist — triggers this error with the parent ID quoted via %q. It mirrors error 990 but for the server/proxy code path.

Source

Thrown at cmd/bd/list_show_filter_modes.go:270

	depsByIssueID, err := loadDepsForIssues(ctx, uw, treeIssues)
	if err != nil {
		return err
	}

	// Hierarchical --parent walks use an unlimited per-level query; never page-truncated.
	displayPrettyListWithDepsMode(treeIssues, false, depsByIssueID, in.depsMode, false, in.ReadyFlag)
	printSkipLabelsFooter(in.SkipLabels)
	return nil
}

func gatherProxiedHierarchical(ctx context.Context, uw uow.UnitOfWork, parentID string, baseFilter types.IssueFilter) ([]*types.Issue, error) {
	parent, err := uw.IssueUseCase().GetIssue(ctx, parentID)
	if err != nil {
		return nil, fmt.Errorf("error checking parent issue: %w", err)
	}
	if parent == nil {
		return nil, fmt.Errorf("parent issue %q not found", parentID)
	}

	descendants, err := uw.IssueUseCase().GetDescendants(ctx, parentID, baseFilter)
	if err != nil {
		return nil, fmt.Errorf("error finding descendants: %w", err)
	}
	if len(descendants) == 0 {
		return nil, nil
	}

	out := make([]*types.Issue, 0, len(descendants)+1)
	out = append(out, parent)
	out = append(out, descendants...)
	return out, nil
}

type currentIssueSearcher interface {
	SearchIssues(context.Context, string, types.IssueFilter) ([]*types.Issue, error)

View on GitHub (pinned to 71377f2769)

Solutions

  1. Run `bd show <parentID>` to verify existence on the current remote
  2. Check the parent ID for typos
  3. Sync (`bd dolt pull`) or verify you are on the correct remote
  4. Re-run the command in the intended repository

Example fix

// before
bd list --parent bd-1234  # if bd-1234 was deleted
// after
bd show bd-1234           # confirms 'not found'
bd list --parent bd-5678  # use a valid parent
Defensive patterns

Strategy: validation

Validate before calling

if out, err := exec.Command("bd", "show", parentID).Run(); err != nil {
    return fmt.Errorf("parent %s not found on remote", parentID)
}

Prevention

When it happens

Trigger: `bd list --parent <id>` against a server-mode UOW where the parent ID does not exist in the remote database: deleted issue, mistyped ID, or querying a remote whose data set lacks that issue.

Common situations: Typo in parent ID; issue deleted remotely before your sync; pointing at the wrong remote (e.g. staging vs production); scripts caching IDs from another project.

Related errors


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