Channels (Telegram) silently disabled by tengu_harbor feature flag — paying Max subscriber locked out
Summary
Channels feature (Telegram integration) stopped working silently. The tengu_harbor feature flag is set to false server-side, which blocks ALL inbound channel messages. No announcement, no warning, no deprecation notice. Everything looks like it's working — MCP connects, banner says "Listening for channel messages" — but messages never arrive.
Environment
- Claude Code version: 2.1.100 (native binary, Linux x86_64)
- OS: Ubuntu 24.04, Hetzner VPS
- Subscription: Claude Max (paying subscriber)
- Plugin:
telegram@claude-plugins-officialv0.0.4 - Last working: April 10, 2026 ~12:49 CEST
- Stopped working: April 10, 2026 — same day, no config changes on my side
Symptoms
claude --channels plugin:telegram@claude-plugins-officialstarts normally- Banner displays: "Listening for channel messages from: plugin:telegram@claude-plugins-official"
- Telegram MCP server connects successfully (debug log confirms
Successfully connected (transport: stdio) in 218ms) - MCP server disconnects after 6-8 seconds (
UNKNOWN connection closed after 8s (cleanly)) - No inbound messages are delivered — complete silence
- Telegram Bot API confirms messages ARE queued (
getUpdatesreturns them) - Outbound tools (reply, react) are still registered in permissions
Debug log evidence
2026-04-10T16:48:54.794Z [WARN] auto mode disabled: tengu_auto_mode_config.enabled === "disabled" (circuit breaker)
2026-04-10T16:48:55.027Z [DEBUG] MCP server "plugin:telegram:telegram": Successfully connected (transport: stdio) in 257ms
2026-04-10T16:49:01.266Z [DEBUG] MCP server "plugin:telegram:telegram": UNKNOWN connection closed after 6s (cleanly)
Root cause (from binary analysis)
The gate function K_$ checks mjH() (which reads tengu_harbor from GrowthBook) at step 2 — before any other validation. When the flag is false, the function returns {action: "skip", kind: "disabled", reason: "channels feature is not currently available"} and drops the connection.
--dangerously-load-development-channels does NOT bypass this check — it only skips the allowlist validation at step 4+. The feature flag at step 2 blocks everything regardless.
What I tried
- [x] Restarting Claude Code session
- [x] Reinstalling plugin
- [x] Using
--dangerously-load-development-channels server:telegram - [x] Enabling plugin in
enabledPluginssettings - [x] Running with
--debugto trace the issue - [x] Verifying Telegram Bot API works (messages are queued, token is valid)
- [x] Checking
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICis not set
Nothing helps because the block is server-side.
Impact
I'm a paying Claude Max subscriber who migrated from a third-party Telegram integration (OpenClaw) to Anthropic's official Channels solution, trusting it would be supported. I deleted OpenClaw and restructured my entire workflow around Channels.
Now:
- My Telegram bot is dead with zero warning
- I have no fallback — the old integration is gone
- The feature appears to work (no error messages!) but silently drops all inbound messages
- Hours spent debugging what turned out to be a server-side kill switch
Request
- Re-enable
tengu_harborfor Max subscribers — or at minimum provide a way to opt in - If Channels is being deprecated, announce it — don't silently disable a feature people depend on
- Show an actual error message when the feature flag is disabled instead of pretending to listen
- Don't gate paid features behind unstable feature flags that can be toggled without notice
Related issues
- #46299 — Channels feature silently disabled by tengu_harbor flag
- #45985 — Telegram MCP server disconnects after 5s
- #45918 — DISABLE_NONESSENTIAL_TRAFFIC blocks feature flags
- #35832 — tengu circuit breaker
- #36503 — Original channels reliability thread
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗