multica-ai/multica · error
delete metadata: %w
Error message
delete metadata: %w
What it means
Wraps a failed HTTP DELETE to /api/issues/{issueID}/metadata/{key} during `multica issue metadata delete`. Note the command then attempts a follow-up GET to refresh the metadata, but that refresh failing is tolerated — only the DELETE itself produces this error.
Source
Thrown at server/cmd/multica/cmd_issue_metadata.go:314
if key == "" {
return fmt.Errorf("--key is required")
}
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)
}
path := "/api/issues/" + issueRef.ID + "/metadata/" + key
if err := client.DeleteJSON(ctx, path); err != nil {
return fmt.Errorf("delete metadata: %w", err)
}
// Refresh the metadata so the user sees the result.
var result map[string]any
output, _ := cmd.Flags().GetString("output")
if err := client.GetJSON(ctx, "/api/issues/"+issueRef.ID+"/metadata", &result); err != nil {
if output == "json" {
return cli.PrintJSON(os.Stdout, map[string]any{"deleted": true})
}
fmt.Fprintln(os.Stdout, "Key deleted.")
return nil
}
metadata, _ := result["metadata"].(map[string]any)
if output == "json" {
return cli.PrintJSON(os.Stdout, metadata)
}
printMetadataTable(metadata)
return nilView on GitHub (pinned to 2c0912b6ec)
Solutions
- List current keys first with `multica issue metadata get ISSUE` and delete only existing ones
- Make scripts tolerate 404 when the key is already gone (idempotent delete)
- Re-login on 401; retry on transient network errors
Defensive patterns
Strategy: try-catch
Validate before calling
# optionally confirm the key exists first
multica issue metadata get "$ISSUE" --output json | jq -e --arg k "$META_KEY" '.[$k]' >/dev/null \
|| { echo "key $META_KEY not present" >&2; exit 0; } Try / catch
if err := client.DeleteJSON(ctx, path); err != nil {
if isNotFound(err) { /* already deleted: treat as success in scripts */ }
return fmt.Errorf("delete metadata: %w", err)
} Prevention
- Treat 404 on delete as idempotent success
- Check `metadata get` output before deleting
- Re-login on 401 rather than retrying blindly
When it happens
Trigger: DELETE returns 404 (key doesn't exist on that issue), 401/403 (expired token, no permission), or a 5xx/server error; network failure mid-request.
Common situations: Trying to delete a metadata key that was already removed (scripts are not idempotent); double-running a cleanup script; token expiry mid-session.
Related errors
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/91dbb5baa4bb382f.
Report an issue: GitHub.