Description
Problem Statement
The channels-stop-start-e2e job in the nightly-e2e run #26133440454 failed with 2 assertion failures out of 262 tests:
openclaw/wechat: expected channel present in agent config at baseline, got no
openclaw/wechat: expected channel present in agent config after start+rebuild, got no
The channels.openclaw-weixin block is missing from the final openclaw.json inside the sandbox. The registry correctly lists wechat in messagingChannels, and the provider record and policy preset are present, but the OpenClaw agent config does not contain the openclaw-weixin channel entry — so the WeChat bridge never starts.
The root cause is a build-order issue in the Dockerfile: generate-openclaw-config.py (which seeds channels.openclaw-weixin via seed-wechat-accounts.py) runs before openclaw doctor --fix and openclaw plugins install /opt/nemoclaw, both of which rewrite openclaw.json and drop the seeded channel block.
Proposed Design
Re-run seed-wechat-accounts.py after the OpenClaw doctor/plugin-install steps in the Dockerfile. Enhance the seed script to also restore plugins.installs.openclaw-weixin and plugins.entries.openclaw-weixin.enabled before writing channels.openclaw-weixin, so the gateway recognizes the upstream channel id when validating config.
See fix PR: #3843
Note: The equivalent fix was independently landed on main as PR #3839 (commit ce03b01).
Alternatives Considered
None — the fix is mechanical: the seed must run after all config-mutating steps.
Category
config_error
Reproduction Steps
- Re-run
channels-stop-start-e2e on commit 2dc09427 via gh workflow run nightly-e2e.yaml --repo NVIDIA/NemoClaw --ref 2dc09427d88a6f09cdf6ce87dd887b7045ff870a.
- Observe that the OpenClaw WeChat baseline and start+rebuild assertions fail with
got no.
Environment
- OS: Ubuntu 24.04 (GitHub-hosted runner)
- Node.js: N/A (runner default)
- Docker: runner default
- NemoClaw: commit
2dc09427d88a6f09cdf6ce87dd887b7045ff870a
- Other: nightly-e2e run
26133440454
Debug Output
FAIL: openclaw/wechat: expected channel present in agent config at baseline, got no
[info] registry.messagingChannels: ["discord","slack","telegram","wechat","whatsapp"]
[info] registry.disabledChannels: null
[info] openclaw.json channels:
['defaults', 'discord', 'slack', 'telegram', 'whatsapp']
FAIL: openclaw/wechat: expected channel present in agent config after start+rebuild, got no
[info] registry.messagingChannels: ["discord","slack","telegram","wechat","whatsapp"]
[info] registry.disabledChannels: null
[info] openclaw.json channels:
['defaults', 'discord', 'slack', 'telegram', 'whatsapp']
=== Summary ===
Total: 262 Pass: 260 Fail: 2 Skip: 0
FAILED
Logs
N/A
Checklist
Suggested Labels (apply manually after triage): nightly-e2e, auto-diagnosed, ci-failure, VRDC
Description
Problem Statement
The
channels-stop-start-e2ejob in the nightly-e2e run #26133440454 failed with 2 assertion failures out of 262 tests:openclaw/wechat: expected channel present in agent config at baseline, got noopenclaw/wechat: expected channel present in agent config after start+rebuild, got noThe
channels.openclaw-weixinblock is missing from the finalopenclaw.jsoninside the sandbox. The registry correctly listswechatinmessagingChannels, and the provider record and policy preset are present, but the OpenClaw agent config does not contain theopenclaw-weixinchannel entry — so the WeChat bridge never starts.The root cause is a build-order issue in the Dockerfile:
generate-openclaw-config.py(which seedschannels.openclaw-weixinviaseed-wechat-accounts.py) runs beforeopenclaw doctor --fixandopenclaw plugins install /opt/nemoclaw, both of which rewriteopenclaw.jsonand drop the seeded channel block.Proposed Design
Re-run
seed-wechat-accounts.pyafter the OpenClaw doctor/plugin-install steps in the Dockerfile. Enhance the seed script to also restoreplugins.installs.openclaw-weixinandplugins.entries.openclaw-weixin.enabledbefore writingchannels.openclaw-weixin, so the gateway recognizes the upstream channel id when validating config.See fix PR: #3843
Note: The equivalent fix was independently landed on
mainas PR #3839 (commitce03b01).Alternatives Considered
None — the fix is mechanical: the seed must run after all config-mutating steps.
Category
config_errorReproduction Steps
channels-stop-start-e2eon commit2dc09427viagh workflow run nightly-e2e.yaml --repo NVIDIA/NemoClaw --ref 2dc09427d88a6f09cdf6ce87dd887b7045ff870a.got no.Environment
2dc09427d88a6f09cdf6ce87dd887b7045ff870a26133440454Debug Output
Logs
N/A
Checklist
Suggested Labels (apply manually after triage):
nightly-e2e,auto-diagnosed,ci-failure,VRDC