gastownhall/beads · error

not found: %s

Error message

not found: %s

What it means

resolvePartialIDDirect falls through to this error when neither a direct ID lookup nor a prefix search finds any matching issue — the given ID/prefix does not exist in the store.

Source

Thrown at cmd/bd/wisp.go:385

func resolvePartialIDDirect(ctx context.Context, partial string) (string, error) {
	// Try direct lookup first
	if issue, err := store.GetIssue(ctx, partial); err == nil {
		return issue.ID, nil
	}
	// Search by prefix
	issues, err := store.SearchIssues(ctx, "", types.IssueFilter{
		IDs: []string{partial + "*"},
	})
	if err != nil {
		return "", err
	}
	if len(issues) == 1 {
		return issues[0].ID, nil
	}
	if len(issues) > 1 {
		return "", fmt.Errorf("ambiguous ID: %s matches %d issues", partial, len(issues))
	}
	return "", fmt.Errorf("not found: %s", partial)
}

var wispListCmd = &cobra.Command{
	Use:   "list",
	Short: "List all wisps in current context",
	Long: `List all wisps (ephemeral molecules) in the current context.

Wisps are issues with Ephemeral=true in the main database. They are stored
locally but not synced via git.

The list shows:
  - ID: Issue ID of the wisp
  - Title: Wisp title
  - Status: Current status (open, in_progress, closed)
  - Started: When the wisp was created
  - Updated: Last modification time

Old wisp detection:

View on GitHub (pinned to 71377f2769)

Solutions

  1. Verify the ID with `bd show <id>` or `bd list`
  2. Use `bd wisp list` to confirm the wisp still exists (it may have been GC'd/burned)
  3. Check you're operating in the correct database/repo context

Example fix

// before
bd wisp create bd-wxyz   # does not exist
// after
bd wisp list             # find the correct ID, then retry
Defensive patterns

Strategy: validation

Validate before calling

if _, err := store.GetIssue(ctx, id); err != nil {
    return fmt.Errorf("issue %s not found; run 'bd list' to find the correct ID", id)
}

Try / catch

if err := runWispCreate(id); err != nil {
    if strings.HasPrefix(err.Error(), "not found: ") {
        // prompt user to check the ID or list existing wisps
    }
}

Prevention

When it happens

Trigger: `bd wisp create <id>` with a mistyped, already-closed/GC'd, or from-another-database issue ID where the prefix search returns zero rows.

Common situations: Typo in the ID; wisp already burned/GC'd; referencing an issue that lives in a different repo/database or hasn't been synced to this clone; stale script referencing deleted wisps.

Understand the failure class

Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.

Related errors


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