Description
Environment
- NemoClaw:
v0.0.11 (tested with OpenClaw 2026.4.2) - OpenShell:
0.0.26 - Host: Brev Ubuntu instance
- Runtime: Docker
- Sandbox:
test5 - Discord channel enabled via
nemoclaw onboard
Summary
Discord integration never becomes healthy.
The bot can authenticate against Discord REST endpoints, but Discord gateway session repeatedly fails before READY, causing continuous auto-restarts and no message responses in server channels.
Reproduction Steps
- Run
nemoclaw onboard and enable Discord channel. - Configure Discord guild (allowlist) and mention behavior.
- Create/recreate sandbox and start normally.
- Send mention in Discord server channel (e.g.
@bot hello). - Monitor sandbox logs:
nemoclaw test5 logs --follow tail -f /tmp/gateway.log inside sandbox
Expected Behavior
- Discord gateway reaches READY.
- Bot receives message events and responds in channel.
Actual Behavior
- Repeated gateway reconnect loop.
- No bot response in Discord channel.
/tmp/gateway.log shows repeated errors:
gateway error: AggregateError Gateway websocket closed: 1006 discord gateway did not reach READY within 15000ms after restart auto-restart attempt X/10
Evidence That Configuration Is Correct
- Discord policy preset is enabled (
nemoclaw test5 policy-list shows discord applied). - Guild allowlist matches actual guild:
openclaw.json has groupPolicy: allowlist with guild ID 1490999514902036564 - Bot guild listing includes the same guild.
- Token/provider path appears functional:
- Inside sandbox,
DISCORD_BOT_TOKEN is provider placeholder (openshell:resolve:env:...) as expected. - Discord REST call resolves successfully (
GET /users/@me returns 200 in test script).
- Gateway endpoint reachability basic probe:
- direct WS hello probe can open and receive
op:10 hello, but production channel still fails to reach READY.
Relevant Log Snippets
[discord] gateway error: AggregateError
[discord] gateway: Gateway websocket closed: 1006
[discord] [default] channel exited: discord gateway did not reach READY within 15000ms after restart
[discord] [default] auto-restart attempt 8/10 in 300s
L7_REQUEST ... dst_host=discord.com ... /api/v10/users/
@me ... l7_decision=allow
L7_REQUEST ... dst_host=discord.com ... /api/v10/oauth2/applications/
@me ... l7_decision=allow
L7_REQUEST ... dst_host=discord.com ... /api/v10/gateway/bot ... l7_decision=allow
可以,我给你一个“更详细日志版”的 Issue 内容,你直接替换原来的 Relevant Log Snippets 部分即可。
Detailed Logs
1) Discord gateway restart loop from /tmp/gateway.log
2026-04-10T10:41:39.099+00:00 [discord] [default] starting provider (@testnemoclaw)
2026-04-10T10:41:39.302+00:00 [discord] channels resolved: guild:1490999514902036564→1490999514902036564 (guild:mercl's server)
2026-04-10T10:41:40.228+00:00 [discord] client initialized as 1490999921338482708 (testnemoclaw); awaiting gateway readiness
2026-04-10T10:41:40.230+00:00 [discord] gateway error: AggregateError
2026-04-10T10:41:40.898+00:00 [discord] gateway: Gateway websocket closed: 1006
2026-04-10T10:41:40.899+00:00 [discord] gateway: Gateway reconnect scheduled in 2055ms (close, resume=false)
2026-04-10T10:41:42.961+00:00 [discord] gateway: Gateway websocket closed: 1006
2026-04-10T10:41:42.963+00:00 [discord] gateway: Gateway reconnect scheduled in 3604ms (close, resume=false)
2026-04-10T10:41:46.585+00:00 [discord] gateway: Gateway websocket closed: 1006
2026-04-10T10:41:46.586+00:00 [discord] gateway: Gateway reconnect scheduled in 9160ms (close, resume=false)
2026-04-10T10:41:55.262+00:00 [discord] gateway was not ready after 15000ms; restarting gateway
2026-04-10T10:42:00.266+00:00 [discord] startup restart waiting on a stale gateway socket for 5000ms; forcing terminate before reconnect
2026-04-10T10:42:01.269+00:00 [discord] [default] channel exited: discord gateway socket did not close within 5000ms before restart
2026-04-10T10:42:01.270+00:00 [discord] [default] auto-restart attempt 1/10 in 5s
2) L7 logs show Discord REST is allowed
L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/users/
@me ... l7_decision=allow
L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/oauth2/applications/
@me ... l7_decision=allow
L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/users/@me/guilds ... l7_decision=allow
L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/gateway/bot ... l7_decision=allow
L7_REQUEST ... dst_host=discord.com ... l7_action=PUT ... l7_target=/api/applications/1490999921338482708/commands ... l7_decision=allow
3) Proxy behavior inside sandbox (for gateway endpoint)
$ curl -sv https://gateway.discord.gg/
...
< HTTP/1.1 403 Forbidden
curl: (56) CONNECT tunnel failed, response 403
4) WS probe behavior inside sandbox
Handshake/hello succeeds repeatedly:open
msg {"t":null,"s":null,"op":10,"d":{"heartbeat_interval":...}}
close 1005
But production Discord channel process still fails to reach READY and loops with 1006 + AggregateError.
5) Config evidence (openclaw.json)
{
"accounts": {
"default": {
"token": "openshell:resolve:env:DISCORD_BOT_TOKEN",
"enabled": true
}
},
"groupPolicy": "allowlist",
"guilds": {
"1490999514902036564": {
"requireMention": true
}
},
"enabled": true
}
6) Guild allowlist match check
- Allowed guild in config:
1490999514902036564 - Bot joined guild list includes:
1490999514902036564 (mercl's server)
L7_REQUEST ... dst_host=discord.com ... PUT /api/applications/.../commands ... l7_decision=allow
Notes
- This appears to be a Discord gateway session stability issue rather than a user configuration/permission issue.
- Please advise if additional debug logs should be captured from gateway internals.
Bug Details
| Field |
Value |
| Priority |
Unprioritized |
| Action |
Dev - Open - To fix |
| Disposition |
Open issue |
| Module |
Machine Learning - NemoClaw |
| Keyword |
NemoClaw, NEMOCLAW_GH_SYNC_APPROVAL |
[NVB# 6066621]
[NVB#6066621]
Description
Environment
v0.0.11(tested with OpenClaw2026.4.2)0.0.26test5nemoclaw onboardSummary
Discord integration never becomes healthy.
The bot can authenticate against Discord REST endpoints, but Discord gateway session repeatedly fails before READY, causing continuous auto-restarts and no message responses in server channels.
Reproduction Steps
nemoclaw onboardand enable Discord channel.@bot hello).nemoclaw test5 logs --followtail -f /tmp/gateway.loginside sandboxExpected Behavior
Actual Behavior
/tmp/gateway.logshows repeated errors:gateway error: AggregateErrorGateway websocket closed: 1006discord gateway did not reach READY within 15000ms after restartauto-restart attempt X/10Evidence That Configuration Is Correct
nemoclaw test5 policy-listshowsdiscordapplied).openclaw.jsonhasgroupPolicy: allowlistwith guild ID1490999514902036564DISCORD_BOT_TOKENis provider placeholder (openshell:resolve:env:...) as expected.GET /users/@mereturns 200 in test script).op:10hello, but production channel still fails to reach READY.Relevant Log Snippets
[discord] gateway error: AggregateError [discord] gateway: Gateway websocket closed: 1006 [discord] [default] channel exited: discord gateway did not reach READY within 15000ms after restart [discord] [default] auto-restart attempt 8/10 in 300s L7_REQUEST ... dst_host=discord.com ... /api/v10/users/@me ... l7_decision=allow L7_REQUEST ... dst_host=discord.com ... /api/v10/oauth2/applications/@me ... l7_decision=allow L7_REQUEST ... dst_host=discord.com ... /api/v10/gateway/bot ... l7_decision=allow可以,我给你一个“更详细日志版”的 Issue 内容,你直接替换原来的
Relevant Log Snippets部分即可。Detailed Logs
1) Discord gateway restart loop from
2026-04-10T10:41:39.099+00:00 [discord] [default] starting provider (@testnemoclaw) 2026-04-10T10:41:39.302+00:00 [discord] channels resolved: guild:1490999514902036564→1490999514902036564 (guild:mercl's server) 2026-04-10T10:41:40.228+00:00 [discord] client initialized as 1490999921338482708 (testnemoclaw); awaiting gateway readiness 2026-04-10T10:41:40.230+00:00 [discord] gateway error: AggregateError 2026-04-10T10:41:40.898+00:00 [discord] gateway: Gateway websocket closed: 1006 2026-04-10T10:41:40.899+00:00 [discord] gateway: Gateway reconnect scheduled in 2055ms (close, resume=false) 2026-04-10T10:41:42.961+00:00 [discord] gateway: Gateway websocket closed: 1006 2026-04-10T10:41:42.963+00:00 [discord] gateway: Gateway reconnect scheduled in 3604ms (close, resume=false) 2026-04-10T10:41:46.585+00:00 [discord] gateway: Gateway websocket closed: 1006 2026-04-10T10:41:46.586+00:00 [discord] gateway: Gateway reconnect scheduled in 9160ms (close, resume=false) 2026-04-10T10:41:55.262+00:00 [discord] gateway was not ready after 15000ms; restarting gateway 2026-04-10T10:42:00.266+00:00 [discord] startup restart waiting on a stale gateway socket for 5000ms; forcing terminate before reconnect 2026-04-10T10:42:01.269+00:00 [discord] [default] channel exited: discord gateway socket did not close within 5000ms before restart 2026-04-10T10:42:01.270+00:00 [discord] [default] auto-restart attempt 1/10 in 5s/tmp/gateway.log2) L7 logs show Discord REST is allowed
L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/users/@me ... l7_decision=allow L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/oauth2/applications/@me ... l7_decision=allow L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/users/@me/guilds ... l7_decision=allow L7_REQUEST ... dst_host=discord.com ... l7_action=GET ... l7_target=/api/v10/gateway/bot ... l7_decision=allow L7_REQUEST ... dst_host=discord.com ... l7_action=PUT ... l7_target=/api/applications/1490999921338482708/commands ... l7_decision=allow3) Proxy behavior inside sandbox (for gateway endpoint)
$ curl -sv https://gateway.discord.gg/ ... < HTTP/1.1 403 Forbidden curl: (56) CONNECT tunnel failed, response 4034) WS probe behavior inside sandbox
Handshake/hello succeeds repeatedly:open
msg {"t":null,"s":null,"op":10,"d":{"heartbeat_interval":...}}
close 1005
But production Discord channel process still fails to reach READY and loops with 1006 + AggregateError.
5) Config evidence (
{ "accounts": { "default": { "token": "openshell:resolve:env:DISCORD_BOT_TOKEN", "enabled": true } }, "groupPolicy": "allowlist", "guilds": { "1490999514902036564": { "requireMention": true } }, "enabled": true }openclaw.json)6) Guild allowlist match check
- Allowed guild in config:
- Bot joined guild list includes:
L7_REQUEST ... dst_host=discord.com ... PUT /api/applications/.../commands ... l7_decision=allow14909995149020365641490999514902036564 (mercl's server)Notes
Bug Details
[NVB# 6066621]
[NVB#6066621]