multica-ai/multica · error

list child issues: %w

Error message

list child issues: %w

What it means

The parent issue resolved, but the GET to /api/issues/{id}/children failed while fetching sub-issues. The response is decoded into a struct with an `issues` array; the error fires before any decoding/sorting, so the cause is transport, auth, or an HTTP error status on this sub-resource.

Source

Thrown at server/cmd/multica/cmd_issue.go:895

func runIssueChildren(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)
	}

	var resp struct {
		Issues []map[string]any `json:"issues"`
	}
	if err := client.GetJSON(ctx, "/api/issues/"+issueRef.ID+"/children", &resp); err != nil {
		return fmt.Errorf("list child issues: %w", err)
	}
	children := resp.Issues

	// Order by stage ascending (unstaged last), preserving the API's
	// within-stage order (position, then created_at desc).
	sort.SliceStable(children, func(i, j int) bool {
		si, oki := childStage(children[i])
		sj, okj := childStage(children[j])
		if oki != okj {
			return oki // staged before unstaged
		}
		return si < sj
	})

	output, _ := cmd.Flags().GetString("output")
	if output == "table" {
		actors := loadActorDisplayLookup(ctx, client)
		headers := []string{"STAGE", "KEY", "TITLE", "STATUS", "PRIORITY", "ASSIGNEE"}

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Check the wrapped error's status: 401/403 → fix auth/scope; 5xx/connection → wait for server health and retry.
  2. Confirm the parent still exists with `multica issue get <ref>` (a deleted parent surfaces here as 404).
  3. In recursive tree scripts, catch and log per-parent failures instead of aborting.
Defensive patterns

Strategy: retry

Try / catch

# tree-walk helper: retry transient, fail fast on auth
 for i in 1 2 3; do
   out=$(multica issue children "$PARENT_ID" 2>&1) && break
   case "$out" in *401*|*403*|*404*) echo "$out" >&2; exit 1;; esac
   sleep $((i*2))
 done
 echo "$out"

Prevention

When it happens

Trigger: Running `multica issue children <valid-ref>` with the server down, an expired token (401), no read permission on the parent's children (403), or a server 5xx on this endpoint.

Common situations: Server restarts during tree-walking scripts; tokens expiring mid-traversal; workspace permission changes.

Related errors


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/01cec2b329828830. Report an issue: GitHub.