multi_agent_v2: auto-injected 'continue' message missing required 'author' field, crashes session with input[N].author error
Summary
When multi_agent_v2 = true and a turn ends with subagent completions, the Codex CLI auto-injects a programmatic \"continue\" user message to start the next turn. This message is sent to the Responses API without the author field, causing the API to return:
{"error":{"type":"invalid_request_error","code":"missing_required_parameter","message":"Missing required parameter: 'input[N].author'."}}
The session terminates immediately and cannot recover. The next rollout attempt also fails.
Environment
- CLI version:
0.141.0 - Model:
gpt-5.4(resolved togpt-5.5vianotice.model_migrations) wire_api:responses- Feature flag:
multi_agent_v2 = true - OS: Linux
Steps to reproduce
- Enable
multi_agent_v2 = trueinconfig.toml - Start a session that spawns subagents (e.g. spawn two subagents for parallel work)
- Let the subagents complete — both send
subagent_notificationback to root - The CLI auto-generates a new turn with a synthetic
\"continue\"user message - The API rejects the request:
input[N].authormissing
What the transcript shows
The session JSONL records this sequence at the point of failure:
type=inter_agent_communication author="/root/validate_example" status=completed
type=inter_agent_communication author="/root/run_example" status=completed
type=event_msg task_complete (turn finished)
type=event_msg task_started (new turn auto-started by task system)
type=turn_context
type=response_item {"type":"message","role":"user","content":[{"type":"input_text","text":"continue"}]} ← no 'author'
type=event_msg user_message message="continue"
type=event_msg task_complete duration_ms=1402, last_agent_message=null ← immediate failure
The author field is present on inter_agent_communication entries (set correctly by the subagent protocol) but is not set on the synthetic user message the task coordinator injects into the Responses API input array.
All other user messages in the same session (typed by the human) also lack author in the local transcript JSONL, but those turns succeed — likely because they go through the normal turn-submission path that does attach author before sending. The task-system-injected "continue" uses a different code path that skips this.
Expected behaviour
The auto-injected \"continue\" message should include author (e.g. {"type":"user","name":"user"}) before being placed in the Responses API input array, consistent with how human-typed messages are sent.
Workaround
Manually type your next prompt instead of letting the task system auto-continue after subagents finish. This goes through the normal turn path which correctly attaches author.