multica-ai/multica · error
resolve issue: %w
Error message
resolve issue: %w
What it means
Returned by `runIssuePropertyList` when `resolveIssueRef` fails to turn the positional argument into a concrete issue ID (bad pattern, no match, or ambiguous match). This fails before any property fetching, so it is always an input-resolution problem, not a property problem.
Source
Thrown at server/cmd/multica/cmd_property.go:589
headers := []string{"NAME", "VALUE", "TYPE"}
tableRows := make([][]string, len(rows))
for i, row := range rows {
tableRows[i] = []string{row.Name, row.Display, row.Type}
}
cli.PrintTable(os.Stdout, headers, tableRows)
}
func runIssuePropertyList(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)
}
properties, err := fetchProperties(ctx, client)
if err != nil {
return err
}
bag, err := fetchIssuePropertyBag(ctx, client, issueRef.ID)
if err != nil {
return err
}
rows := buildIssuePropertyRows(properties, bag)
output, _ := cmd.Flags().GetString("output")
if output == "json" {
return cli.PrintJSON(os.Stdout, rows)
}
printIssuePropertyRows(rows)
return nil
}
View on GitHub (pinned to 2c0912b6ec)
Solutions
- Run `multica issue list` and copy the exact identifier shown for the target issue.
- Check the wrapped error text — it usually states whether the ref was not found or was ambiguous; disambiguate with the full key/ID.
- Update scripts to resolve issues dynamically rather than caching old refs.
Example fix
// before multica issue property list ISS-99 // error: resolve issue: ... // after multica issue list multica issue property list <exact-key-or-id>
Defensive patterns
Strategy: validation
Validate before calling
# bash: resolve the issue first and fail with a clear message
ISSUE_ID=$(multica issue list --output json | jq -r --arg k "$KEY" '.[] | select(.key==$k) | .id')
[ -n "$ISSUE_ID" ] || { echo "issue $KEY not found" >&2; exit 1; } Type guard
func issueRefResolves(ctx context.Context, c *cli.APIClient, ref string) bool {
_, err := resolveIssueRef(ctx, c, ref)
return err == nil
} Prevention
- Take issue identifiers from `multica issue list`, not from memory or URLs.
- Re-resolve refs at the start of each automation run instead of caching them.
When it happens
Trigger: Passing an issue ref that matches no issue (typo, deleted issue), an identifier in a format `resolveIssueRef` does not accept, or a ref that resolves ambiguously across the workspace.
Common situations: Hard-coded issue keys in scripts that break after issues are archived/deleted; typos in interactive use; copy-pasting a URL fragment instead of the expected key format.
Related errors
- invalid direction %q (want \"up\" or \"down\")
- --name is required
- --runtime-id is required
- --runtime-config must be valid JSON: %w
- %s must be a JSON object, or 'null' to clear
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/5af4ef3e0c73080a.
Report an issue: GitHub.