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

  1. List valid ids first: `multica skill list` and copy the exact id.
  2. If the id is correct, check auth (`multica login`) and server reachability.
  3. Confirm you are on the right profile — ids are per-deployment.
  4. 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

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.