Channel plugins not spawned when resuming session with --resume + --channels

Resolved 💬 3 comments Opened Mar 26, 2026 by ccromp Closed Mar 30, 2026

Description

When resuming a session with --resume <session-id> --channels plugin:discord@claude-plugins-official, the Discord channel plugin subprocess is not spawned, even though other MCP servers start normally. This means the agent loads conversation history but cannot receive or respond to Discord messages.

Environment

  • Claude Code version: 2.1.84
  • OS: macOS (Darwin 25.3.0)
  • Channel plugin: plugin:discord@claude-plugins-official (from claude-plugins-official marketplace)
  • Setup: Multiple persistent agents running in tmux, each with --channels plugin:discord@...

Steps to Reproduce

  1. Start a Claude Code session with channels:

``
claude --channels plugin:discord@claude-plugins-official --permission-mode bypassPermissions --dangerously-skip-permissions
``

  1. Verify the Discord plugin subprocess is running:

``
pgrep -P <claude-pid>
# Shows: bun run --cwd .../external_plugins/discord --shell=bun --silent start
``

  1. Exit the session (note the session ID)
  2. Resume with channels:

``
claude --resume <session-id> --channels plugin:discord@claude-plugins-official --permission-mode bypassPermissions --dangerously-skip-permissions
``

  1. Check child processes again:

``
pgrep -P <new-claude-pid>
# Shows MCP servers (context7, stagehand, mcp-remote, etc.) but NO Discord bun process
``

Expected Behavior

The Discord channel plugin subprocess (bun run ... discord ... start) should be spawned on resume, just as it is on a fresh session start. The --channels flag is explicitly provided on the command line.

Actual Behavior

  • All standard MCP servers defined in .mcp.json start normally
  • The channel plugin subprocess is not spawned
  • Discord messages sent to the bot are not delivered to the session
  • The session loads conversation history correctly but has no channel connectivity

Impact

This makes it impossible to resume a Discord-connected agent session after a config change or restart without losing all conversation context. For persistent agent setups (running 24/7 in tmux), this means any restart that requires context continuity (e.g., mid-task config changes) breaks Discord connectivity.

Workaround

Currently none. Fresh sessions with --channels work correctly, but --resume + --channels does not spawn the channel plugin. /reload-plugins does not help as it only reloads skills into the system prompt, not MCP server processes.

Related Issues

  • #21974 — --dangerously-skip-permissions not persisted on resume (same class: CLI flags dropped on resume)
  • #36638 — --resume fails with --dangerously-load-development-channels
  • #37072 — Channel plugin MCP tools not available in session
  • #18174 — Support hot-reload for plugins without session restart

View original on GitHub ↗

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