[MODEL] Non-Latin (Burmese) output corrupted during rapid sequential MCP generation, correct when generated in isolation
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information (API keys, passwords, etc.)
Type of Behavior Issue
Other unexpected behavior
What You Asked Claude to Do
Generate Burmese-language explanation notes for a batch of ~5+ questions via our MCP server, processing them sequentially (claim_task → get_generation_context → generate → save_generated_note per question).
What Claude Actually Did
- Processed 6 tasks in a continuous back-to-back loop (~3s between each), all in one session.
- For the 5 items generated inside the rapid loop, the Burmese output was corrupted: malformed conjunct clusters and nonsense words (e.g. wrote "စက်လြက်" where the correct word is "စကားလုံး" = "word").
- Also hallucinated numbers in the corrupted output — cited page "၄၉၉" (499) and year "၄၉၉၉" (4999), even though the correct page 104 was present in the input AND was submitted correctly in the structured page_reference field of the SAME response.
- Generated one more item in isolation ~90 seconds later (same topic, same source): this one came out as clean, fluent, correct Burmese with the correct page 104.
- All output was valid UTF-8 in every case — the corruption is semantically-wrong generated characters, not a byte-encoding/transport fault.
Net: identical task, same session, same model — corrupted when generated inside a rapid sequential loop, correct when generated in isolation.
Expected Behavior
Generated output quality should be consistent regardless of whether an item is produced inside a batch/sequential loop or in isolation. Burmese (and other complex non-Latin scripts) should render as correct, well-formed text in both cases, with no degradation as similar tool-call turns accumulate in a session.
Files Affected
- Claude Code version: 2.1.207 (Claude Code)
- Model: Fable, Opus 4.8, Sonnet 5
- OS: Windows + WSL2 (Linux)
- Integration: Claude Code as an MCP client over stdio transport, driving a custom MCP server (JSON-RPC → database). No file I/O in this path.
Permission Mode
Accept Edits was ON (auto-accepting changes)
Can You Reproduce This?
Yes, every time with the same prompt
Steps to Reproduce
All six notes were generated by the same session within a 6-minute window, same topic, same clean source (English textbook, page 104). Items A–E were claimed back-to-back in a continuous loop (~3s apart); item F was generated in isolation after a ~90s pause.
Strongest tell — internal inconsistency inside a single generation: the structured page_reference the model submitted is correct (104) for every item, yet the garbled Burmese body text cites page ၄၉၉ (499) / year ၄၉၉၉ (4999). Correct value in the structured field + hallucinated value in the free-text of the SAME response rules out any encoding/transport explanation.
| # | question | claimed_at | page_reference (structured) | page in body | quality | verdict |
|---|---|---|---|---|---|---|
| A | 11591 | 18:07:25 | 104 | ၄၉၉ | 0.50 | garbled |
| B | 11594 | 18:08:22 | 104 | ၄၉၉ | 0.80 | garbled |
| C | 11597 | 18:09:08 | 104 | ၄၉၉ | 0.40 | garbled |
| D | 11600 | 18:10:01 | 104 | ၄၉၉၉ | 0.60 | garbled |
| E | 11603 | 18:10:57 | 104 | ၄၉၉ | 0.55 | garbled |
| F | 11606 | 18:13:22 (isolated) | 104 | ၁၀၄ | 1.00 | clean |
Garbled example (item A): "စာမျက်နှာ ၄၉၉ အရ Biodiversity ... စက်လြက် ..." — "စက်လြက်" is not a real word; intended "စကားလုံး" (word). Cites page 499 though page_reference=104.
Clean example (item F, isolated): "Edward O. Wilson က 'Biodiversity' ဟူသော အသုံးအနှုန်းကို ရေပန်းစားအောင် လုပ်ဆောင်ခဲ့သူဖြစ်သည်။ စာမျက်နှာ ၁၀၄ အရ ... ၁၉၈၅ ခုနှစ်တွင် ..." — fluent, correct page 104, correct year 1985.
Full machine-readable dump of all 6 rows (with complete bodies) attached as burmese_evidence.json. Every body is valid UTF-8 (verified with mb_check_encoding).
Claude Model
Opus
Relevant Conversation
Impact
Medium - Extra work to undo changes
Claude Code Version
2.1.207 (Claude Code)
Platform
Other
Additional Context
I did use claude code and other conding agents like: commandcode, open codes to do this feature. Primarily my goal is to use with my claude code subscription. During the development, I noticed that all other agents give me that correct Burmese text and the claude code gave corrupted datas. I was surprised. Cuz I know that normally claude api is good at responding burmese language. I tested multiple time and noticed that it works perfectly file while working on single question from my mcp. But when more than questions tries to work, the content get destroyed.