multica-ai/multica · error
get skill: %w
Error message
get skill: %w
What it means
Returned by `multica skill get <id>` when the HTTP GET /api/skills/<id> via client.GetJSON fails. Beyond transport failures, this is the standard path for a not-found skill id: the server's 404 is wrapped into this error. The command aborts before any table/JSON output.
Source
Thrown at server/cmd/multica/cmd_skill.go:275
strVal(s, "created_at"),
})
}
cli.PrintTable(os.Stdout, headers, rows)
return nil
}
func runSkillGet(cmd *cobra.Command, args []string) error {
client, err := newAPIClient(cmd)
if err != nil {
return err
}
ctx, cancel := cli.APIContext(context.Background())
defer cancel()
var skill map[string]any
if err := client.GetJSON(ctx, "/api/skills/"+args[0], &skill); err != nil {
return fmt.Errorf("get skill: %w", err)
}
output, _ := cmd.Flags().GetString("output")
if output == "json" {
return cli.PrintJSON(os.Stdout, skill)
}
headers := []string{"ID", "NAME", "DESCRIPTION", "CREATED_AT"}
rows := [][]string{{
strVal(skill, "id"),
strVal(skill, "name"),
strVal(skill, "description"),
strVal(skill, "created_at"),
}}
cli.PrintTable(os.Stdout, headers, rows)
return nil
}
View on GitHub (pinned to 2c0912b6ec)
Solutions
- List valid ids first: `multica skill list` and copy the exact id.
- If the id is correct, check auth (`multica login`) and server reachability.
- Confirm you are on the right profile — ids are per-deployment.
- Handle 404 in automation by re-resolving ids from skill list instead of hardcoding.
Example fix
# before multica skill get abc123 # after: resolve the id dynamically multica skill list --output json | jq -r '.[] | select(.name=="lint") | .id'
Defensive patterns
Strategy: validation
Validate before calling
# Resolve the id from the authoritative list before get
SKILL_ID=$(multica skill list --output json | jq -r --arg n "$NAME" '.[] | select(.name==$n) | .id')
[ -n "$SKILL_ID" ] || { echo "skill '$NAME' not found"; exit 2; }
multica skill get "$SKILL_ID" Try / catch
Treat 'get skill:' wrapping a 404 as a not-found signal: re-resolve the id via skill list, and only escalate to connectivity/auth checks if list also fails.
Prevention
- Never hardcode skill ids in automation; resolve by name at runtime.
- Remember ids are scoped per server/workspace and profile.
- Re-check ids after workspace resets or server reinstalls.
When it happens
Trigger: Requesting a skill id that was deleted, belongs to another workspace, or has a typo; also fires for the same transport/auth causes as list (server down, expired token).
Common situations: Scripts holding stale skill ids after a workspace reset; ids copied across profiles/environments where they don't exist; token scoped to a different workspace.
Related errors
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/e013e1570f3ae592.
Report an issue: GitHub.