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 in

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Run `multica workspace list` and copy the exact ID or slug from the output.
  2. If recently removed from the workspace, ask an admin to re-add you.
  3. For prefixes, use at least 4 hex characters; if ambiguous you'll get the dedicated ambiguity error listing matches.
  4. 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

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


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