multica-ai/multica · error
--description-stdin and --context-stdin cannot be combined;
Error message
--description-stdin and --context-stdin cannot be combined; a single stdin cannot feed both fields — pass one of them inline
What it means
`multica workspace create` refuses --description-stdin together with --context-stdin because a process has a single stdin stream: whichever field reads it first drains it and the other would receive EOF and fail with a misleading 'content is empty' error. The combination is rejected up front with the fix spelled out.
Source
Thrown at server/cmd/multica/cmd_workspace.go:302
if strings.TrimSpace(name) == "" {
return nil, fmt.Errorf("--name is required")
}
// The server requires both name and slug (POST /api/workspaces returns 400
// without them) and the slug is immutable after creation, so it must be
// chosen explicitly here rather than silently omitted.
slug, _ := cmd.Flags().GetString("slug")
if strings.TrimSpace(slug) == "" {
return nil, fmt.Errorf("--slug is required")
}
// A single stdin stream cannot feed two fields: whichever field reads first
// drains it and the other gets EOF. Reject the ambiguous combination up
// front instead of surfacing a misleading "content is empty" error.
descStdin, _ := cmd.Flags().GetBool("description-stdin")
ctxStdin, _ := cmd.Flags().GetBool("context-stdin")
if descStdin && ctxStdin {
return nil, fmt.Errorf("--description-stdin and --context-stdin cannot be combined; a single stdin cannot feed both fields — pass one of them inline")
}
body := map[string]any{"name": name, "slug": slug}
if cmd.Flags().Changed("description") || cmd.Flags().Changed("description-stdin") {
desc, _, err := resolveTextFlag(cmd, "description")
if err != nil {
return nil, err
}
body["description"] = desc
}
if cmd.Flags().Changed("context") || cmd.Flags().Changed("context-stdin") {
ctxText, _, err := resolveTextFlag(cmd, "context")
if err != nil {
return nil, err
}
body["context"] = ctxText
}
if cmd.Flags().Changed("issue-prefix") {View on GitHub (pinned to 2c0912b6ec)
Solutions
- Supply one field via stdin and the other inline: `--description-stdin --context "text"` (or vice versa).
- Or use --description-file / --context-file for both so stdin is untouched.
- Or run two commands: create with one field, then update with the other.
Example fix
# before cat desc.txt | multica workspace create --name n --slug s --description-stdin --context-stdin # after multica workspace create --name n --slug s --description-file desc.txt --context-file ctx.txt
Defensive patterns
Strategy: validation
Validate before calling
if [ "$DESC_STDIN" = true ] && [ "$CTX_STDIN" = true ]; then echo 'one stdin cannot feed two fields'; exit 1; fi
Prevention
- One stdin consumer per invocation: pair stdin with inline or --file inputs for other fields.
- Prefer --description-file/--context-file in automation for deterministic input.
When it happens
Trigger: Running `cat payload | multica workspace create --name n --slug s --description-stdin --context-stdin`; only the first reader gets the bytes, the second sees EOF.
Common situations: Automation that wants to set both long-text fields from piped input in one command.
Related errors
- --%s-stdin: empty input%s
- stdin content for --%s is empty
- --name is required
- --slug is required
- --issue-prefix cannot be empty; omit it to use the server-ge
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/b3952ec390ef1aca.
Report an issue: GitHub.