claude-code - 💡(How to fix) Fix Channel notifications from Telegram plugin not displayed in conversation [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#45189Fetched 2026-04-09 08:11:12
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Participants
Timeline (top)
labeled ×5cross-referenced ×1

Error Message

  • mcp.notification({ method: 'notifications/claude/channel', ... }) resolves without error ✅

Fix Action

Workaround

Currently writing inbound messages to a local JSONL file (~/.claude/channels/telegram/inbound.jsonl) and polling it via CronCreate every 2 minutes.

🤖 Generated with Claude Code

Code Example

[2026-04-08T12:39:15.897Z] polling as @unbutter_mkt_bot
[2026-04-08T12:41:22.527Z] delivering inbound from 6422572531: 테스트
[2026-04-08T12:41:22.528Z] notification delivered successfully
RAW_BUFFERClick to expand / collapse

Bug Description

MCP channel notifications (notifications/claude/channel) sent by the Telegram plugin are successfully delivered but never displayed as <channel> tags in the Claude Code conversation.

Environment

  • Claude Code version: 2.1.96
  • Platform: macOS (Darwin 25.2.0)
  • Plugin: telegram@claude-plugins-official v0.0.4
  • Shell: zsh

Steps to Reproduce

  1. Configure Telegram plugin with a bot token and allowlisted user
  2. Start Claude Code, ensure plugin connects (/mcp shows connected)
  3. Send a message from the allowlisted Telegram user to the bot
  4. Expected: message appears as <channel source="telegram" ...> in the conversation
  5. Actual: nothing appears — the conversation never receives the inbound message

Debugging Evidence

Added logging to the plugin's server.ts. The logs confirm:

[2026-04-08T12:39:15.897Z] polling as @unbutter_mkt_bot
[2026-04-08T12:41:22.527Z] delivering inbound from 6422572531: 테스트
[2026-04-08T12:41:22.528Z] notification delivered successfully
  • bot.start() succeeds, polling is active ✅
  • gate() passes (user is in allowFrom) ✅
  • mcp.notification({ method: 'notifications/claude/channel', ... }) resolves without error ✅
  • But the <channel> tag never appears in the conversation ❌

Additional Context

  • Outbound works fine: calling mcp__plugin_telegram_telegram__reply successfully sends messages to Telegram.
  • Tested with both short messages ("테스트") and long messages — neither appears.
  • getUpdates API returns empty (confirming bot consumed the updates), and no 409 Conflict.
  • Multiple /mcp reconnections and process restarts (pkill -f "bun.*telegram") did not resolve the issue.
  • Note: system has two Claude installations (npm-global at /opt/homebrew/bin/claude and native at ~/.local/bin/claude) with a configuration mismatch warning — unclear if related.

Workaround

Currently writing inbound messages to a local JSONL file (~/.claude/channels/telegram/inbound.jsonl) and polling it via CronCreate every 2 minutes.

🤖 Generated with Claude Code

extent analysis

TL;DR

The issue with MCP channel notifications not being displayed as <channel> tags in the Claude Code conversation may be resolved by verifying the plugin's configuration and the conversation's rendering logic.

Guidance

  • Review the server.ts file in the Telegram plugin to ensure that the mcp.notification method is correctly formatted and sent to the Claude Code conversation.
  • Verify that the conversation's rendering logic is correctly handling the <channel> tags and that there are no CSS or display issues hiding the tags.
  • Check the Claude Code configuration to ensure that the notifications/claude/channel method is enabled and properly configured.
  • Investigate the configuration mismatch warning between the two Claude installations to determine if it is related to the issue.

Example

No code snippet is provided as the issue does not imply a specific code-related fix.

Notes

The issue may be related to the configuration mismatch between the two Claude installations, but further investigation is needed to confirm this. The workaround of writing inbound messages to a local JSONL file and polling it via CronCreate may be a temporary solution, but it does not address the root cause of the issue.

Recommendation

Apply workaround: The current workaround of writing inbound messages to a local JSONL file and polling it via CronCreate may be a temporary solution until the root cause of the issue is identified and fixed. This allows for some functionality to be maintained while further investigation is conducted.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING