Skip to content

[nightly-e2e] WeChat channel registration lost after OpenClaw config mutations #3844

@hunglp6d

Description

@hunglp6d

Description

Problem Statement

The channels-stop-start-e2e job in the nightly-e2e run #26133440454 failed with 2 assertion failures out of 262 tests:

  1. openclaw/wechat: expected channel present in agent config at baseline, got no
  2. 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

  1. Re-run channels-stop-start-e2e on commit 2dc09427 via gh workflow run nightly-e2e.yaml --repo NVIDIA/NemoClaw --ref 2dc09427d88a6f09cdf6ce87dd887b7045ff870a.
  2. 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

  • I can reproduce the issue.
  • I have searched existing issues and confirmed this is not a duplicate.

Suggested Labels (apply manually after triage): nightly-e2e, auto-diagnosed, ci-failure, VRDC

Metadata

Metadata

Assignees

Labels

VRDCIssues and PRs submitted by NVIDIA VRDC test team.area: e2eEnd-to-end tests, nightly failures, or validation infrastructurearea: messagingMessaging channels, bridges, manifests, or channel lifecycleintegration: whatsappWhatsApp integration or channel behavior
No fields configured for Enhancement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions