Opus 4.8: two consecutive 64K-token runaway thinking generations with zero visible output (empty thinking blocks)
Summary
During an interactive Claude Code session on Opus 4.8, the model produced two consecutive generations that each consumed the full 64,000 output-token cap on invisible thinking, with zero visible output. The user saw no response for ~30 minutes while ~128K output tokens were charged against the MAX plan usage limit.
Environment
- Claude Code v2.1.193 (macOS, Darwin 25.5.0, Apple Silicon)
- Model:
claude-opus-4-8(1M context), selected via/model - MAX plan (subscription usage limits, not API billing)
Evidence (from the session transcript .jsonl)
| Request ID | Timestamp (UTC) | Model | output_tokens | Visible content |
|---|---|---|---|---|
| msg_011Cd7a5cCEZ4TNKhR4grRWZ | 2026-07-17T11:52:19Z | claude-opus-4-8 | 64000 (max_tokens hit) | Single thinking block with empty text (display=omitted default), no text/tool_use blocks |
| msg_011Cd7aj4fUkHN3gpwZHBDg4 | 2026-07-17T12:12:53Z | claude-opus-4-8 | 64000 (max_tokens hit) | Same — empty thinking block only |
Timeline: the user asked a question at 11:43 UTC, the assistant ran two quick Bash tool calls (returned instantly at 11:43:50), then the next two generations were the 64K thinking runaways above — roughly 8 and 20 minutes of generation each, back to back, with no visible text, no tool calls, and no user-facing progress.
Context that may be relevant
The host machine was memory-starved at the time (leftover headless claude processes had accumulated ~700MB; free memory was ~80MB). Earlier in the same session, tool outputs were intermittently empty and date +%s returned frozen values, so the model may have been reasoning at length about inconsistent/degraded tool results. Still, the failure mode itself — thinking to the 64K cap twice in a row with nothing surfaced — seems like something the harness/model should guard against.
Expected behavior
- Some guard against unbounded thinking that reaches
max_tokenswith zero visible output (e.g. surface partial progress, abort-and-retry with reduced effort, or warn the user), especially when it happens twice consecutively. - From a user's perspective, two full-cap invisible generations consumed a large fraction of the 5-hour usage window with no way to notice until much later. An indicator that the model is in extended thinking (and how much it has consumed) would have allowed the user to interrupt.
Impact
~128K output tokens (Opus tier) + the surrounding retries consumed roughly 20% of a 5-hour MAX usage window with zero user-visible output during that period.