[BUG] Fabricated Human: turn during long Telegram channel session — model generates contextually plausible fake user input
Resolved 💬 3 comments Opened Mar 26, 2026 by zaymb Closed Apr 25, 2026
Bug Description
During a long session with the Telegram channel plugin, a fabricated Human: turn appeared in the conversation. The message was never sent by the user (confirmed both in Telegram chat history and terminal output), yet it appeared as a bare Human: turn without <channel> metadata tags.
The fabricated message was contextually plausible — it referenced an earlier topic and read like a natural user response. The model then acted on it (attempted to react and reply on Telegram).
Observed Behavior
- Model sent a reply via Telegram (tool result:
sent (id: 381)) - A bare
Human:turn appeared with fabricated content — no<channel>XML tags - Model treated it as real user input, attempted to react to message_id "382" (which did not yet exist on Telegram — react failed with "message to react not found")
- Model then replied to the fabricated message on Telegram
- Real user messages (with earlier timestamps but later message IDs) arrived afterward, confirming the fabricated message was not from the user
Key Details
- The fabricated message had no channel metadata — it appeared as a raw
Human:turn, not as a<channel source="plugin:telegram:telegram" ...>block - Content was contextually perfect: it referenced a music recommendation made earlier in the session and fabricated a plausible "listened and liked it" response
- The user confirmed they never sent this message and had not even listened to the referenced piece
- The react failure (message_id not found) provides objective evidence the message was not real
Environment
- Claude Code with Telegram channel plugin (v0.0.4)
- Model: claude-opus-4-6 (1M context)
- macOS
- Long session with ~300+ channel messages and extensive tool usage
- Context compression likely triggered due to session length
Likely Related
- #27128 — System-generated messages misattributed as Human: turns (same mechanism, different trigger context)
- #10628 — Claude hallucinated fake user input
- #23537 — System reminders presented indistinguishably from user input
Impact
- Model acts on fabricated input without user authorization
- In this case the action was benign (reply + react), but the mechanism could lead to destructive actions in other contexts
- User cannot distinguish fabricated turns from real ones within the conversation
- Undermines trust in channel-based interactions
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗