openai / openai/codex

Long-running Goal turn on gpt-5.6-sol emitted corrupted assistant text after timer tool output

Open
#45,188 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI model-behavior
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

A long-running Codex Goal session emitted nonsensical assistant messages such as bird choose?codes? Brittany?, nehmer?, ारण?, and 10:? during an automatic Goal turn.

The text was not a TUI rendering artifact: it is present in the rollout JSONL as real response_item entries with role: assistant and output_text.

Environment / context
  • Model: gpt-5.6-sol
  • Goal turn: 01a0995b-f682-7f61-b58e-90fd5ee6f7d8
  • Root turn: 01a0995a-2642-70a0-9f36-9bb5e1d82c38
  • turn_context.summary: auto
  • Session rollout file was originally created on 2026-08-20 and was still active on 2026-09-13, with >5000 recorded events.
  • Goal purpose: monitor a ModelScope download on a remote Dell C4140 roughly every 15 minutes.
Relevant rollout sequence
ordinal 4956  task_started
ordinal 4957  turn_context
  model: gpt-5.6-sol
  summary: auto

ordinal 5018  function_call_output
  Script completed
  Wall time 866.4 seconds
  Output: interval_elapsed

ordinal 5023  custom_tool_call_output
  45591540271  /opt/models/Qwen3.8-Flash-Next-NVFP4
  270
  84663 ... modelscope download ...
  2026-09-13T06:48:57Z

ordinal 5027–5028  assistant
  09:49 MSK:
  - Downloaded: 45.59 of 125.91 GB
  - Progress: 36.2%
  - Files: 270 of 420
  - Process active, no errors

ordinal 5031  custom_tool_call_output
  Script running with cell ID 179
  Wall time 31.0 seconds

ordinal 5035  function_call_output
  Script completed
  Wall time 865.6 seconds
  Output: interval_elapsed

ordinal 5042  custom_tool_call_output
  56458744262  /opt/models/Qwen3.8-Flash-Next-NVFP4
  332
  84663 ... modelscope download ...
  2026-09-13T07:04:15Z

ordinal 5046  custom_tool_call
  setTimeout(..., 900000)

ordinal 5048  custom_tool_call_output
  Script running with cell ID 181
  Wall time 31.0 seconds

ordinal 5050–5051  reasoning
ordinal 5052–5053  assistant/commentary
  bird choose?codes? Brittany?
ordinal 5054–5055  reasoning
ordinal 5056–5057  assistant/commentary
  nehmer?
ordinal 5060–5061  assistant/commentary
  ारण?
ordinal 5064–5065  assistant/commentary
  10:?
ordinal 5068  function_call
  wait(cell_id=181, yield_time_ms=900000)
ordinal 5070  thread_goal_updated
  status: paused
ordinal 5071  function_call_output
  aborted by user after 26.1s
Evidence that this is not a TUI artifact

The rollout contains entries like:

{"timestamp":"2026-09-13T07:04:24.173Z","type":"response_item","payload":{"type":"message","role":"assistant","content":[{"type":"output_text","text":"bird choose?codes? Brittany?"}],"phase":"commentary"}}

and equivalent response_item entries for the other corrupted strings.

Observations
  • The anomaly occurred in an automatic Goal turn, not in a user request.
  • SSH, ModelScope, and preceding tool calls were healthy.
  • No nearby API transport error, rate-limit error, or tool failure was found.
  • This was a new automatic Goal task, not a resumed partial API response.
  • summary: auto was active, but there was no explicit compaction event immediately around the failure.
  • The user paused/interrupted the Goal only after the malformed assistant output appeared.
Expected behavior

After the successful tool output, Codex should either report the updated download status or continue waiting for the next interval. It should not emit unrelated corrupted fragments as assistant messages.

Suspected area

Potential interaction between long-lived Goal sessions, auto-summarized context, repeated long timer/tool cycles, and assistant generation after intermediate tool outputs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing automatic Goal-turn handling around repeated timer and tool outputs, especially the auto-summary path and assistant response generation. Reproduce the long-lived session sequence from the rollout, then inspect the recorded response_item entries. Done means automatic turns no longer emit unrelated or corrupted assistant text after successful tool output.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
ai, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.