multica-ai/multica · error
list skills: %w
Error message
list skills: %w
What it means
Returned by `multica skill list` when the HTTP GET /api/skills via client.GetJSON fails. The %w wraps transport- or server-level failures: unreachable server, auth rejection, non-2xx status, or a response body that is not valid JSON. NewAPIClient errors (no config/token) surface earlier with their own message.
Source
Thrown at server/cmd/multica/cmd_skill.go:242
}
if !utf8.Valid(data) {
return "", false, fmt.Errorf("%s must be valid UTF-8", label)
}
return string(data), true, nil
}
func runSkillList(cmd *cobra.Command, _ []string) error {
client, err := newAPIClient(cmd)
if err != nil {
return err
}
ctx, cancel := cli.APIContext(context.Background())
defer cancel()
var skills []map[string]any
if err := client.GetJSON(ctx, "/api/skills", &skills); err != nil {
return fmt.Errorf("list skills: %w", err)
}
output, _ := cmd.Flags().GetString("output")
if output == "json" {
return cli.PrintJSON(os.Stdout, skills)
}
headers := []string{"ID", "NAME", "DESCRIPTION", "CREATED_AT"}
rows := make([][]string, 0, len(skills))
for _, s := range skills {
rows = append(rows, []string{
strVal(s, "id"),
strVal(s, "name"),
strVal(s, "description"),
strVal(s, "created_at"),
})
}
cli.PrintTable(os.Stdout, headers, rows)View on GitHub (pinned to 2c0912b6ec)
Solutions
- Check connectivity/auth first: `multica auth status` and `multica daemon status` for the active profile.
- Read the wrapped error — 401/403 means re-authenticate (`multica login`), connection refused means the server is down.
- Verify server_url in the profile config matches a running deployment.
- Retry once transient network conditions clear; for self-hosted, check the reverse proxy and server logs.
Defensive patterns
Strategy: retry
Validate before calling
# Pre-flight the API the CLI will hit server_url=$(multica config show --output json | jq -r .server_url) curl -fsS -o /dev/null "$server_url/api/skills" || echo "API unreachable or unauthorized"
Try / catch
Branch on the wrapped cause: auth errors → run `multica login` and stop; connection errors → retry with backoff; 5xx → retry later; other 4xx → report server message unchanged.
Prevention
- Run `multica auth status` before skill commands in scripts.
- Monitor self-hosted server/proxy health.
- Keep profiles pinned to known-good server URLs.
When it happens
Trigger: Running `multica skill list` when the daemon/server at the configured server_url is down, the token expired or was revoked, DNS fails, or the server returns a 5xx or HTML error page instead of the skills array.
Common situations: Self-hosted server stopped or behind a misconfigured reverse proxy; token invalidated after a server reinstall; profile pointing at the wrong server_url; TLS certificate issues.
Related errors
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/29a00da58cd4eab0.
Report an issue: GitHub.