{
  "schemaVersion": 2,
  "id": "provider-tool-arg-corruption-gibberish",
  "title": "Model corrupts tool-call paths and degenerates into gibberish mid-session",
  "category": "provider",
  "severity": "medium",
  "lastVerified": "2026-08-30",
  "source": "https://github.com/openai/codex/issues/40369",
  "match": {
    "any": [
      {
        "contains": "gibberish"
      },
      {
        "contains": "pseudo-language"
      }
    ],
    "all": []
  },
  "summary": "In a long tool-heavy gpt-5.6-sol session at high reasoning effort, generated tool calls start containing corrupted working directories and filenames (even after the model explicitly says it corrected them), and the TUI streams repetitive pseudo-language until interrupted.",
  "explanation": "The corruption happens during model response generation, not inside the shell: nonexistent paths like /u001zeni/... and SKUL.md instead of SKILL.md appear in tool calls, the model acknowledges and 'fixes' them, and the very next call corrupts the same values again. It is persisted evidence, not a rendering glitch - the corrupted arguments are stored in the rollout JSONL as response_item/custom_tool_call records. Context pressure is ruled out: the session was at roughly 21% of an 828,400-token window at both failures, with no stream disconnects, retries, or compaction events around the affected turns. Single detailed report, no deterministic reproducer yet.",
  "actions": [
    "Interrupt the turn and continue in a fresh thread - the reporter recovered by interrupting; degeneration persisted within the same thread.",
    "Do not chase context or memory: usage was ~21% with no compaction or retry events nearby.",
    "When reporting upstream, attach the session/thread ID and the rollout JSONL - the corrupted tool-call arguments are persisted there as response_item/custom_tool_call records, which is exactly the evidence maintainers need."
  ],
  "links": [
    {
      "type": "github_issue",
      "url": "https://github.com/openai/codex/issues/40369",
      "label": "openai/codex#40369"
    }
  ],
  "tags": [
    "provider",
    "gpt-5.6",
    "tool-calls",
    "degeneration",
    "rollout"
  ],
  "i18n": {
    "zh-CN": {
      "title": "模型在会话中途损坏工具调用路径并退化成乱码",
      "summary": "在长而重的 gpt-5.6-sol 高推理强度会话里，生成的工具调用开始包含损坏的工作目录和文件名（模型明确说已修正后依然复现），TUI 随后流式输出重复的伪语言直到被打断。",
      "explanation": "损坏发生在模型响应生成阶段，而不是 shell 内部：工具调用里出现不存在的路径（如 /u001zeni/...）和 SKUL.md（应为 SKILL.md），模型承认并\"修正\"后，紧接着的下一次调用又把同样的值写坏。这是有持久化证据的，不是渲染故障——损坏的参数已经作为 response_item/custom_tool_call 记录存进 rollout JSONL。上下文压力已排除：两次失败时会话都只用了约 21% 的 828,400 窗口，附近也没有流断连、重试或压缩事件。目前是单份详细报告，尚无确定性复现步骤。",
      "actions": [
        "打断当前轮并换新线程继续——报告者靠打断恢复；同一线程内退化会持续。",
        "不要排查上下文或内存：用量仅约 21%，附近也没有压缩或重试事件。",
        "向上游报告时附上会话/线程 ID 和 rollout JSONL——损坏的工具调用参数就持久化在 response_item/custom_tool_call 记录里，这正是维护者需要的证据。"
      ]
    },
    "ja": {
      "title": "モデルがツール呼び出しのパスを壊し、セッション中に意味不明な文字列へ退化する",
      "summary": "長くツールの重い gpt-5.6-sol の高推論強度セッションで、生成されたツール呼び出しが壊れた作業ディレクトリやファイル名を含み始め（モデルが明示的に修正したと言った後でも）、TUI が中断まで繰り返しの疑似言語を流し続けます。",
      "explanation": "損壊はモデル応答の生成中に起こり、シェル内ではありません。/u001zeni/... のような存在しないパスや SKILL.md の代わりの SKUL.md がツール呼び出しに現れ、モデルはそれを認めて「修正」し、その直後の呼び出しで同じ値をまた壊します。描画のグリッチではなく永続化された証拠です。壊れた引数は rollout JSONL に response_item / custom_tool_call 記録として保存されます。コンテキスト圧力は排除済みで、両方の失敗時にセッションは 828,400 トークン窓口の約 21% で、付近にストリーム切断・再試行・圧縮イベントはありません。現在は単一の詳細報告で、決定論的な再現手順はまだありません。",
      "actions": [
        "ターンを中断し、新しいスレッドで続けます。報告者は中断で回復し、同じスレッド内では退化が続きました。",
        "コンテキストやメモリを疑わないでください。使用率は約 21% で、付近に圧縮や再試行イベントはありません。",
        "上流へ報告する際はセッション/スレッド ID と rollout JSONL を添えてください。壊れたツール呼び出し引数は response_item / custom_tool_call 記録としてそこに残っており、まさにメンテナが必要とする証拠です。"
      ]
    }
  }
}
