Channels plugin spawns but notifications silently dropped - tengu_harbor flag blocking (VPS + native binary)

Resolved 💬 4 comments Opened Mar 21, 2026 by NoEndsNoGains Closed Apr 19, 2026

Description

Channel plugin shows "Listening for channel messages from: plugin:telegram@claude-plugins-official" but does not spawn the plugin's bun MCP server process and does not route inbound notifications. Same root cause as #36503, #36460, #36431.

Environment

  • Claude Code: v2.1.81 (native binary via install.sh)
  • OS: Ubuntu 22.04 on Hetzner VPS (headless)
  • Auth: claude.ai OAuth (Max subscription, credentials file with fresh token)
  • Plugin: telegram@claude-plugins-official v0.0.1
  • Bun: 1.3.11 (at /usr/local/bin/bun, confirmed in PATH)
  • Non-root user: running as dedicated claude user with --dangerously-skip-permissions

Critical: This blocks always-on use case

The entire point of running Claude Code on a VPS is always-on availability — the user can message their Telegram bot from their phone whether their laptop is open or not. This is the core use case for Channels. Without VPS support, Channels only works when the user is at their computer, which defeats the purpose.

Same account works on Windows laptop — fakechat and Telegram plugins both spawn and route notifications correctly on the laptop. Only the VPS is blocked.

What works

  • ✅ Claude Code starts, shows "Listening for channel messages"
  • ✅ Auth is valid (claude -p "say hello" works)
  • ✅ Plugin is installed and enabled in settings.json
  • ✅ Bun is installed and accessible
  • ✅ node_modules installed in plugin cache
  • ✅ No CLAUDE_CODE_OAUTH_TOKEN env var (uses credentials file)
  • ✅ No DISABLE_TELEMETRY or related vars set
  • Same account works on Windows laptop

What doesn't work

  • ❌ No bun child process spawned (confirmed via ps aux | grep bun)
  • ❌ Telegram messages never reach Claude Code
  • ❌ No error output, no stderr, completely silent failure

Steps to Reproduce

  1. Install Claude Code native binary on Linux VPS via curl -fsSL https://claude.ai/install.sh | bash
  2. Authenticate via credentials file (from laptop's ~/.claude/.credentials.json)
  3. Install plugin: claude plugin install telegram@claude-plugins-official
  4. Configure token in ~/.claude/channels/telegram/.env
  5. Run: claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
  6. Observe: "Listening" message appears but no bun process spawns
  7. Send Telegram message — never received

Request

Please either:

  1. Enable tengu_harbor for this account (karolinaozadowicz@gmail.com)
  2. Or provide a workaround for native binary installations on Linux VPS

This is blocking a real use case — a user who built their entire personal AI architecture around always-on access via Telegram, and Channels was supposed to replace their custom GoBot setup.

Related: #36503, #36460, #36431, #36472

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗