{"record":{"id":"14aa84eb4a428024","repo":"multica-ai/multica","slug":"no-s-found-matching-id-prefix-q-run-the-list-co","errorCode":null,"errorMessage":"no %s found matching id prefix %q; run the list command with --full-id to copy the full UUID","messagePattern":"no (.+?) found matching id prefix %q; run the list command with --full-id to copy the full UUID","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/cmd/multica/cmd_id_resolver.go","lineNumber":107,"sourceCode":"\n\tcandidates, err := fetch(ctx, client)\n\tif err != nil {\n\t\treturn resolvedID{}, fmt.Errorf(\"resolve %s: %w\", kind, err)\n\t}\n\n\tmatches := make([]idCandidate, 0, 1)\n\tfor _, c := range candidates {\n\t\tif c.ID == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(compactUUID(c.ID), prefix) {\n\t\t\tmatches = append(matches, c)\n\t\t}\n\t}\n\n\tswitch len(matches) {\n\tcase 0:\n\t\treturn resolvedID{}, fmt.Errorf(\"no %s found matching id prefix %q; run the list command with --full-id to copy the full UUID\", kind, input)\n\tcase 1:\n\t\tdisplay := matches[0].Display\n\t\tif display == \"\" {\n\t\t\tdisplay = matches[0].ID\n\t\t}\n\t\treturn resolvedID{ID: matches[0].ID, Display: display}, nil\n\tdefault:\n\t\treturn resolvedID{}, ambiguousIDPrefixError(kind, input, matches)\n\t}\n}\n\nfunc ambiguousIDPrefixError(kind, input string, matches []idCandidate) error {\n\tsort.Slice(matches, func(i, j int) bool {\n\t\treturn matches[i].ID < matches[j].ID\n\t})\n\tparts := make([]string, 0, len(matches))\n\tfor _, m := range matches {\n\t\tparts = append(parts, \"  \"+m.ID)","sourceCodeStart":89,"sourceCodeEnd":125,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/cmd/multica/cmd_id_resolver.go#L89-L125","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Run the corresponding list command with --full-id and copy the current UUID","Verify the resource still exists and belongs to the workspace the CLI is targeting","Check for typos in the prefix — even one wrong hex digit yields zero matches","Refresh any hardcoded ids stored in scripts or documentation"],"exampleFix":"# before\nmultica label rm \"deadbe\"\n# error: no label found matching id prefix \"deadbe\"\n\n# after\nmultica label list --full-id\nmultica label rm \"0deadbeef-...-full-uuid\"","handlingStrategy":"validation","validationCode":"// verify the prefix matches at least one known id before invoking\nmatches := 0\nfor _, id := range knownIDs {\n    if strings.HasPrefix(compactUUID(id), prefix) {\n        matches++\n    }\n}\nif matches == 0 {\n    return fmt.Errorf(\"prefix %q matches no known resource; refresh ids\", prefix)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat stored ids as perishable: re-list with --full-id when a no-match error appears","Scope checks to the correct workspace — ids from other workspaces never match"],"tags":["cli","id-resolution","not-found","uuid"],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}