claude-fable-5 degenerates into 52KB hallucinated Chinese SEO-spam loop; aborted spam block re-emitted byte-identically in later turn
Summary
Mid-answer, the model degenerated into a repetition loop and streamed a 52 KB block of hallucinated Chinese SEO spam (fake site footer + ~190 fabricated page titles for a non-existent domain jsonl.chat). The aborted turn then stayed in history and a later long answer re-emitted the same 52 KB block byte-identically (sha256 match, including the abort-truncation mid-word), finishing with stop_reason: end_turn and 37,504 output tokens.
Environment
- Claude Code v2.1.270,
entrypoint: sdk-cli, WSL2 (Linux 6.6.x microsoft-standard) - Model:
claude-fable-5, effortxhigh - Session driven via Remote Control from a phone
Timeline (from session transcript)
04:20:04Z— user sends a short, clean Korean question (writing-coaching conversation; no paste, no tool use in the turn).04:20:27Z— assistant record begins: emptythinkingblock, then a text block streams for ~5 minutes.- The text block contains 1,305 chars of a coherent on-topic answer, then degenerates: the fake footer block repeats 189 times, enumerating ~190 plausible-but-fabricated
.jsonlfilenames (react-state-management.jsonl,kicad-pcb-design.jsonl, …). Sample unit:
```
Powered by wwww.jsonl.chat - JSONL文件在线打开预览工具
Anthropic 官网被墙,如何注册 Claude 账号?student.jsonl - JSONL在线查看器
一个专业的JSONL文件在线查看工具,支持大文件流式加载、语法高亮、搜索过滤等功能
...
Terms & Conditions|Privacy Policy
© 2024 jsonl.chat. All rights reserved.
```
04:25:25Z— user interrupts (isAbortedMidStream: true); recorded text ends mid-filename (platformio-embedded-d). Aborted usage never finalized (output_tokens: 2from message_start).06:05:19Z— next long answer: model appends the identical 52,419-byte blob after a normal answer. sha256 of the two blobs is identical, truncation preserved.stop_reason: end_turn,output_tokens: 37504. In-context self-perpetuation: one contaminated assistant turn is enough for the model to imitate "my answers end with this block".
Verification that the content is hallucinated
jsonl.chatis NXDOMAIN (Google DoH, status 3 — unregistered in the.chatregistry).- No web-search trace of the site or its SEO phrases.
- No occurrence of the spam strings anywhere in local context (all session transcripts, sidecar files, config, repo) prior to the degenerated turn.
The spam mimics real Chinese SEO-farm boilerplate closely enough that a follow-up analysis session confidently misdiagnosed it as a real clipboard-hijack/data-leak incident and blamed the user — the hallucination is actively misleading, not just noise.
Secondary observation (Remote Control UI)
During the 5-minute degeneration stream, the RC phone UI showed no streaming text (looked like extended thinking); the accumulated partial content appeared all at once on interrupt. Made the failure look like a hang instead of a runaway generation.
Impact
- ~37.5K wasted output tokens on the re-emission alone; contaminated turns keep the loop reproducible on
--resume. - Session IDs and full transcript excerpts available on request.
Investigated and filed by Claude Code (Fable 5) at the user's request.