multica-ai/multica · error
get issue: %w
Error message
get issue: %w
What it means
The issue reference resolved, but the GET to /api/issues/{id} itself failed. Unlike the pull-requests variant the ID here is inserted without url.PathEscape, but resolution has already produced a server-issued ID, so the failure is again transport, auth, or an HTTP error status (e.g. the issue disappeared between resolution and fetch, returning 404).
Source
Thrown at server/cmd/multica/cmd_issue.go:822
}
func runIssueGet(cmd *cobra.Command, args []string) error {
client, err := newAPIClient(cmd)
if err != nil {
return err
}
ctx, cancel := cli.APIContext(context.Background())
defer cancel()
issueRef, err := resolveIssueRef(ctx, client, args[0])
if err != nil {
return fmt.Errorf("resolve issue: %w", err)
}
var issue map[string]any
if err := client.GetJSON(ctx, "/api/issues/"+issueRef.ID, &issue); err != nil {
return fmt.Errorf("get issue: %w", err)
}
output, _ := cmd.Flags().GetString("output")
if output == "table" {
actors := loadActorDisplayLookup(ctx, client)
assignee := formatAssignee(issue, actors)
startDate := strVal(issue, "start_date")
if startDate != "" && len(startDate) >= 10 {
startDate = startDate[:10]
}
dueDate := strVal(issue, "due_date")
if dueDate != "" && len(dueDate) >= 10 {
dueDate = dueDate[:10]
}
headers := []string{"KEY", "TITLE", "STATUS", "PRIORITY", "ASSIGNEE", "START DATE", "DUE DATE", "DESCRIPTION"}
rows := [][]string{{
issueDisplayKey(issue),
strVal(issue, "title"),View on GitHub (pinned to 2c0912b6ec)
Solutions
- Read the wrapped error's HTTP status: 404 → the issue was deleted, re-resolve from a fresh list; 401/403 → fix token/scope; 5xx/connection → restore server and retry.
- Re-run `multica issue list` to confirm the issue still exists in the current workspace.
- For batch scripts, handle per-issue failures without aborting the whole batch.
Defensive patterns
Strategy: retry
Try / catch
# distinguish deleted (404, don't retry) from transient (5xx, retry) for i in 1 2 3; do out=$(multica issue get "$REF" 2>&1) && break case "$out" in *404*|*401*|*403*) echo "$out" >&2; exit 1;; esac sleep $((i*2)) done echo "$out"
Prevention
- In concurrent environments, re-resolve refs if a get suddenly 404s.
- Handle per-issue failures in batch scripts without aborting the run.
When it happens
Trigger: Running `multica issue get <ref>` with valid auth but the server unreachable; token expired; the issue deleted by a concurrent session after resolution (404); insufficient permission on that specific issue (403).
Common situations: Race between list/get scripts and cleanup jobs; long-lived tokens expiring mid-batch; permissions differing per issue in shared workspaces.
Related errors
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/4dff0f6fb9d1fc51.
Report an issue: GitHub.