multi_agent_v2: auto-injected 'continue' message missing required 'author' field, crashes session with input[N].author error

Open 💬 0 comments Opened Jun 22, 2026 by Shaik-Sirajuddin

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 to gpt-5.5 via notice.model_migrations)
  • wire_api: responses
  • Feature flag: multi_agent_v2 = true
  • OS: Linux

Steps to reproduce

  1. Enable multi_agent_v2 = true in config.toml
  2. Start a session that spawns subagents (e.g. spawn two subagents for parallel work)
  3. Let the subagents complete — both send subagent_notification back to root
  4. The CLI auto-generates a new turn with a synthetic \"continue\" user message
  5. The API rejects the request: input[N].author missing

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.

View original on GitHub ↗