multica-ai/multica · error

no %s found matching id prefix %q; run the list command with

Error message

no %s found matching id prefix %q; run the list command with --full-id to copy the full UUID

What it means

Returned by resolveIDByPrefix when the candidate list was fetched successfully but zero entries have a compact UUID starting with the given prefix. The message suggests running the list command with --full-id to copy a valid UUID, since prefix matching is client-side over the current list.

Source

Thrown at server/cmd/multica/cmd_id_resolver.go:107

	candidates, err := fetch(ctx, client)
	if err != nil {
		return resolvedID{}, fmt.Errorf("resolve %s: %w", kind, err)
	}

	matches := make([]idCandidate, 0, 1)
	for _, c := range candidates {
		if c.ID == "" {
			continue
		}
		if strings.HasPrefix(compactUUID(c.ID), prefix) {
			matches = append(matches, c)
		}
	}

	switch len(matches) {
	case 0:
		return resolvedID{}, fmt.Errorf("no %s found matching id prefix %q; run the list command with --full-id to copy the full UUID", kind, input)
	case 1:
		display := matches[0].Display
		if display == "" {
			display = matches[0].ID
		}
		return resolvedID{ID: matches[0].ID, Display: display}, nil
	default:
		return resolvedID{}, ambiguousIDPrefixError(kind, input, matches)
	}
}

func ambiguousIDPrefixError(kind, input string, matches []idCandidate) error {
	sort.Slice(matches, func(i, j int) bool {
		return matches[i].ID < matches[j].ID
	})
	parts := make([]string, 0, len(matches))
	for _, m := range matches {
		parts = append(parts, "  "+m.ID)

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Run the corresponding list command with --full-id and copy the current UUID
  2. Verify the resource still exists and belongs to the workspace the CLI is targeting
  3. Check for typos in the prefix — even one wrong hex digit yields zero matches
  4. Refresh any hardcoded ids stored in scripts or documentation

Example fix

# before
multica label rm "deadbe"
# error: no label found matching id prefix "deadbe"

# after
multica label list --full-id
multica label rm "0deadbeef-...-full-uuid"
Defensive patterns

Strategy: validation

Validate before calling

// verify the prefix matches at least one known id before invoking
matches := 0
for _, id := range knownIDs {
    if strings.HasPrefix(compactUUID(id), prefix) {
        matches++
    }
}
if matches == 0 {
    return fmt.Errorf("prefix %q matches no known resource; refresh ids", prefix)
}

Prevention

When it happens

Trigger: Passing a valid-format prefix (>= 4 hex chars) that matches no existing resource — a deleted resource, a prefix from another workspace, or a typo. The fetch succeeded, so this is a data mismatch, not a network problem.

Common situations: Resource was deleted after the id was copied; id belongs to a different workspace than the CLI's current one; stale ids cached in scripts or notes; simple transcription errors in the prefix.

Related errors


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/14aa84eb4a428024. Report an issue: GitHub.