multica-ai/multica · error
workspace %q not found or you do not have access; run 'multi
Error message
workspace %q not found or you do not have access; run 'multica workspace list' to see options
What it means
The identifier given to a workspace subcommand matched none of the caller's visible workspaces by exact UUID, exact slug (case-insensitive), or ≥4-hex-char UUID prefix. Because the server only returns workspaces the user is a member of, 'no match' deliberately conflates not-exists and no-access to avoid leaking workspace existence.
Source
Thrown at server/cmd/multica/cmd_workspace.go:400
// surprises from arbitrary substrings.
if prefix, err := normalizeUUIDPrefix(target); err == nil {
matches := make([]workspaceSummary, 0, 1)
for _, ws := range workspaces {
if strings.HasPrefix(compactUUID(ws.ID), prefix) {
matches = append(matches, ws)
}
}
switch len(matches) {
case 0:
// fall through to the not-found error below
case 1:
return matches[0], nil
default:
return workspaceSummary{}, ambiguousWorkspacePrefixError(target, matches)
}
}
return workspaceSummary{}, fmt.Errorf("workspace %q not found or you do not have access; run 'multica workspace list' to see options", target)
}
func ambiguousWorkspacePrefixError(input string, matches []workspaceSummary) error {
parts := make([]string, 0, len(matches))
for _, m := range matches {
label := m.Name
if m.Slug != "" {
label = fmt.Sprintf("%s (%s)", m.Name, m.Slug)
}
parts = append(parts, fmt.Sprintf(" %s %s", m.ID, label))
}
return fmt.Errorf("ambiguous workspace id prefix %q; matches:\n%s\nUse more characters, the slug, or the full UUID", input, strings.Join(parts, "\n"))
}
// resolveWorkspaceRef fetches the caller's workspaces and resolves the input
// (UUID, slug, or short UUID prefix) to a workspaceSummary. Shared by
// `workspace get`, `workspace update`, `workspace member list`, and
// `workspace switch` so all four accept the same identifiers users see inView on GitHub (pinned to 2c0912b6ec)
Solutions
- Run `multica workspace list` and copy the exact ID or slug from the output.
- If recently removed from the workspace, ask an admin to re-add you.
- For prefixes, use at least 4 hex characters; if ambiguous you'll get the dedicated ambiguity error listing matches.
- Verify you are authenticated as the intended user (`multica user profile get`).
Example fix
# before multica workspace get my-tean # typo # after multica workspace list # copy exact slug/id multica workspace get my-team
Defensive patterns
Strategy: validation
Validate before calling
multica workspace list --output json | grep -qF "$WS_ID" && echo 'target visible' || echo 'target absent: expect not-found/no-access'
Try / catch
out=$(multica workspace get "$WS_ID" 2>&1) || { case "$out" in *not\ found*) echo 'recheck id via workspace list'; exit 1 ;; *) echo "$out"; exit 1 ;; esac; } Prevention
- Always source identifiers from `workspace list` output, never from memory or old tickets.
- Use full UUIDs in automation to eliminate typo/prefix failures.
- Remember membership loss and deletion produce the identical error by design.
When it happens
Trigger: `multica workspace get <uuid|slug|prefix>` where the target was deleted, the slug is misspelled, the prefix is under 4 chars or non-hex, or the workspace belongs to another account/you were removed as a member.
Common situations: Stale UUIDs copied from old tickets or another environment (prod vs local), membership revoked between commands, typos in slugs, prefixes shorter than the 4-char minimum.
Related errors
- subscriber %q resolved to %s; autopilot subscribers must be
- --name is required
- --slug is required
- --description-stdin and --context-stdin cannot be combined;
- --issue-prefix cannot be empty; omit it to use the server-ge
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/746ff3fe334848b4.
Report an issue: GitHub.