multica-ai/multica · error
issue id is required
Error message
issue id is required
What it means
Returned by resolveIssueRef when the issue reference argument trims to an empty string. Issues have their own resolver because they accept two canonical forms (issue key like MUL-1852, or full dashed UUID); an empty value satisfies neither.
Source
Thrown at server/cmd/multica/cmd_id_resolver.go:147
// resolveIssueRef accepts only the two canonical issue references:
//
// - the human-facing issue key, e.g. "MUL-1852" (validated by
// looksLikeIssueIdentifier and resolved server-side);
// - the full UUID in dashed canonical form (validated by uuidRegexp).
//
// Short UUID prefixes (e.g. "1881abcd") were briefly supported but are no
// longer — on large workspaces the CLI had to page the entire issue list
// client-side to disambiguate, causing 14–35s timeouts (GH #4701). Since
// `MUL-123` already covers every human use case for an issue reference, the
// short-prefix path is removed instead of being moved server-side. Other
// resources without a human-readable key (autopilots, projects, labels,
// task runs, workspaces, ...) continue to accept short UUID prefixes; see
// resolveIDByPrefix.
func resolveIssueRef(ctx context.Context, client *cli.APIClient, input string) (resolvedID, error) {
trimmed := strings.TrimSpace(input)
if trimmed == "" {
return resolvedID{}, fmt.Errorf("issue id is required")
}
if looksLikeIssueIdentifier(trimmed) {
return fetchIssueRef(ctx, client, trimmed)
}
if uuidRegexp.MatchString(trimmed) {
return fetchIssueRef(ctx, client, trimmed)
}
// Detect the common "I copied a truncated UUID" case and give a
// tailored hint. normalizeUUIDPrefix succeeds for any input that is
// ≥4 hex chars (after stripping dashes), which matches what the old
// resolver used to accept as a prefix.
if _, err := normalizeUUIDPrefix(trimmed); err == nil {
return resolvedID{}, fmt.Errorf(
"issue ref %q looks like a short UUID prefix; short prefixes are no longer supported for issues. "+
"Use the issue key (e.g. MUL-123) shown by `multica issue list`, or pass the full UUID (run a list command with --full-id to copy it)",
input,View on GitHub (pinned to 2c0912b6ec)
Solutions
- Pass the issue key (e.g. MUL-123) or the full UUID shown by multica issue list
- Guard call sites with non-empty checks or "${VAR:?issue id is required}"
- If the id should come from prior command output, verify that command succeeded first
Example fix
# before multica issue show "" # after multica issue show MUL-1852 # or the full UUID
Defensive patterns
Strategy: validation
Validate before calling
ref := strings.TrimSpace(input)
if ref == "" {
return errors.New("issue id is required")
}
// proceed with multica issue show "$ref" Prevention
- Use ${ISSUE_REF:?issue id is required} in shell wrappers
- Prefer issue keys (MUL-123) as the stable human-facing reference in scripts
When it happens
Trigger: Calling an issue command with an empty or whitespace-only reference: multica issue show "" or a flag fed by an unset variable.
Common situations: Scripts forwarding unset variables; CI parameters left empty; command templates where the issue placeholder was never filled in.
Related errors
- id is required
- %s id is required
- issue ref %q is not a recognized issue reference; use the is
- stdin content for --%s is empty
- %s is empty
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/8607d815d98a99f7.
Report an issue: GitHub.