Skip to content

[Channels] Channel bot stops responding after channels add <channel> + rebuild (verified on slack; likely affects any messaging channel) #4012

@hunglp6d

Description

@hunglp6d

Description

When I enable a messaging channel on an already-onboarded sandbox via nemoclaw <sandbox> channels add <channel> followed by nemoclaw <sandbox> rebuild, the rebuild completes successfully, status and policy-list show the channel's preset is active, and the channel reports socket mode connected (or its equivalent) in the logs — but the bot never replies when I @-mention it.

If I instead export the channel's tokens before running bash install.sh (so the channel is configured during the initial onboard), the same channel app/bot/tokens work fine and the bot replies as expected.

I verified this on Slack, but I suspect it applies to any messaging channel that has a matching built-in network policy preset (discord, telegram, whatsapp, wechat). The channels add code path that wires up the policy is shared across all of them — I just haven't reproduced on the other channels myself.

Expected: adding a channel via channels add <channel> + rebuild after onboard should leave the bot in the same working state as configuring that channel during the initial onboard.

Actual: the channel connects (real-time transport is up, periodic auth checks succeed) but every incoming event is dropped. On Slack specifically I see bolt-app Authorization of incoming event did not succeed. No listeners will be called. followed by a 403 / policy_denied underneath.

Reproduction Steps

Verified path (Slack). The same shape of steps should reproduce on telegram / discord / whatsapp / wechat by swapping the channel name and the corresponding token env vars.

  1. On a clean host with no SLACK_* env vars set, run bash install.sh and let onboarding complete with the default presets (no slack).
  2. Export Slack credentials in the same shell:
    export SLACK_APP_TOKEN=xapp-...
    export SLACK_BOT_TOKEN=xoxb-...
    export SLACK_ALLOWED_USERS=U0...,U0...
  3. Add the slack channel: nemoclaw my-assistant channels add slack
  4. Apply: nemoclaw my-assistant rebuild and accept the prompt. Wait for ✓ Sandbox 'my-assistant' rebuilt successfully.
  5. Verify everything looks healthy:
  • nemoclaw my-assistant status → shows Policies: …, slack
  • nemoclaw my-assistant policy-list → slack is ● (active)
  1. In the Slack workspace where the app is installed, @-mention the bot in any channel it has been invited to.
  2. Observe: bot does not reply.

For comparison, doing the same on a fresh host but with SLACK_APP_TOKEN / SLACK_BOT_TOKEN / SLACK_ALLOWED_USERS exported before step 1 produces a working bot that replies to mentions.

Environment

  • OS: Ubuntu (Linux x86_64)
  • Node.js: v22.22.3 (installed by NemoClaw installer via nvm)
  • Docker: Docker Engine 27.x
  • NemoClaw: v0.0.48-13-ga3210c9d6 (installed from source)
  • OpenShell: 0.0.39 (docker driver)
  • Channel verified: slack
  • Channels suspected (not directly tested): discord, telegram, whatsapp, wechat

Debug Output

Selected excerpts from `nemoclaw my-assistant logs --follow` after rebuild (Slack run; timestamps from the same run):

Initial slack channel start, during rebuild's post-boot window:


2026-05-21T18:02:16.983+00:00 [slack] [default] starting provider
2026-05-21T18:02:17.171+00:00 [WARN]  bolt-app http request failed An HTTP protocol error occurred: statusCode = 403
2026-05-21T18:02:17.174+00:00 [WARN]  web-api:WebClient:0 http request failed An HTTP protocol error occurred: statusCode = 403
2026-05-21T18:02:21.242+00:00 [ERROR]  socket-mode:SocketModeClient:0 Failed to retrieve a new WSS URL (error: Error: An HTTP protocol error occurred: statusCode = 403)
2026-05-21T18:02:21.246+00:00 [slack] socket mode failed to start. retry 1/12 in 2s (An HTTP protocol error occurred: statusCode = 403)
[channels] [slack] provider failed to start: An HTTP protocol error occurred: statusCode = 403 — unhandledRejection caught by safety net, gateway continues
2026-05-21T18:02:30.668+00:00 [slack] socket mode connected


Later, when I @-mention the bot in Slack — socket-mode delivers the event, periodic `auth.test` is ALLOWED, but bolt-app's per-event handling fails:


[1779386638.943] [sandbox] [OCSF ] [ocsf] NET:OPEN [INFO] ALLOWED /usr/local/bin/node(668) -> slack.com:443 [policy:slack engine:opa]
[1779386638.968] [sandbox] [OCSF ] [ocsf] HTTP:POST [INFO] ALLOWED POST http://slack.com:443/api/auth.test [policy:slack engine:l7]
2026-05-21T18:04:00.675+00:00 [WARN]  bolt-app Authorization of incoming event did not succeed. No listeners will be called.
2026-05-21T18:04:00.680+00:00 [ERROR]  bolt-app Error: An HTTP protocol error occurred: statusCode = 403
  code: 'slack_bolt_authorization_error',
  statusCode: 403,
  body: {
    detail: 'CONNECT slack.com:443 not permitted by policy',
    error: 'policy_denied'
  },
2026-05-21T18:04:00.682+00:00 [ERROR]   An unhandled error occurred while Bolt processed (type: event_callback, error: Error: An HTTP protocol error occurred: statusCode = 403)


Every subsequent mention produces the same `Authorization of incoming event did not succeed` / `CONNECT slack.com:443 not permitted by policy` pair.

Logs

Checklist

  • I confirmed this bug is reproducible
  • I searched existing issues and this is not a duplicate

Metadata

Metadata

Assignees

Labels

VRDCIssues and PRs submitted by NVIDIA VRDC test team.area: cliCommand line interface, flags, terminal UX, or outputintegration: slackSlack integration or channel behaviorintegration: whatsappWhatsApp integration or channel behavior

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions