Skip to content

[DGX Spark][Sandbox] WeChat plugin install registry and channel block missing in sandbox openclaw.json after onboard — seed-wechat-accounts late-seed not effective #4237

@mercl-lau

Description

@mercl-lau

Description

After onboarding a sandbox with WeChat channel enabled via non-interactive env vars (WECHAT_ACCOUNT_ID, WECHAT_BASE_URL, etc.), the sandbox openclaw.json is missing both the plugin install registry entry (plugins.installs["openclaw-weixin"]) and the channel block (channels["openclaw-weixin"]). The plugin entries section has enabled=True for openclaw-weixin, but the install registry and channel configuration that seed-wechat-accounts.py is supposed to restore after openclaw plugins install are absent.

This means the WeChat bridge cannot function inside the sandbox — the gateway has no channel configuration to connect to, even though the wechat policy preset was applied and nemoclaw status shows wechat in the policy list.

Environment

Device:        DGX Spark (NVIDIA GB10, unified memory 124609 MB)
OS:            Ubuntu 24.04.4 LTS (aarch64)
Architecture:  aarch64
Node.js:       v24.15.0
npm:           11.12.1
Docker:        Docker CE
OpenShell CLI: 0.0.44
NemoClaw:      v0.0.50
OpenClaw:      v2026.5.18

Steps to Reproduce

  1. Export WeChat config:
    export NEMOCLAW_SANDBOX_NAME=wechat-reg-test
    export NEMOCLAW_NON_INTERACTIVE=1
    export NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1
    export NEMOCLAW_POLICY_TIER=open
    export NVIDIA_API_KEY=nvapi-...
    export WECHAT_ACCOUNT_ID=build_reg_test
    export WECHAT_BASE_URL=https://ilinkai.wechat.com
    export WECHAT_USER_ID=self_uid_42
    export WECHAT_ALLOWED_IDS=friend_uid_1
  2. Run: nemoclaw onboard (exit code 0, sandbox created)
  3. Inside sandbox, check plugin install registry:
    python3 -c "import json; d=json.load(open('/sandbox/.openclaw/openclaw.json')); inst=d.get('plugins',{}).get('installs',{}).get('openclaw-weixin',{}); print('source:', inst.get('source','MISSING')); print('spec:', inst.get('spec','MISSING'))"
  4. Check plugin enabled flag:
    python3 -c "import json; d=json.load(open('/sandbox/.openclaw/openclaw.json')); e=d.get('plugins',{}).get('entries',{}).get('openclaw-weixin',{}); print('enabled:', e.get('enabled','MISSING'))"
  5. Check channel block:
    python3 -c "import json; d=json.load(open('/sandbox/.openclaw/openclaw.json')); ch=d.get('channels',{}); print('weixin_present:', 'openclaw-weixin' in ch)"

Expected Result

  • Step 3: source: npm, spec: @tencent-weixin/openclaw-weixin@2.4.2 (install registry restored by late seed)
  • Step 4: enabled: True
  • Step 5: weixin_present: True (channel block present)

Actual Result

  • Step 3: source: MISSING, spec: MISSINGplugins.installs["openclaw-weixin"] does not exist
  • Step 4: enabled: True — plugin entry exists but install registry is gone
  • Step 5: weixin_present: Falsechannels["openclaw-weixin"] block is absent

nemoclaw status shows wechat in policy list, but the actual channel configuration inside sandbox openclaw.json is missing.

Logs

$ nemoclaw wechat-reg-test status | head -12
  Sandbox: wechat-reg-test
    Model:    nvidia/nemotron-3-super-120b-a12b
    Provider: nvidia-prod
    Inference: healthy
    Policies: npm, pypi, huggingface, brew, slack, discord, telegram, wechat, whatsapp, jira, outlook

$ nemoclaw wechat-reg-test exec -- python3 -c "..."
source: MISSING
spec: MISSING
enabled: True
weixin_present: False

NVB#6222825

Metadata

Metadata

Assignees

Labels

NV QABugs found by the NVIDIA QA Teamarea: sandboxOpenShell sandbox lifecycle, runtime, config, or recoveryintegration: wechatWeChat integration behaviorintegration: whatsappWhatsApp integration or channel behaviorplatform: dgx-sparkAffects DGX Spark hardware or workflowsv0.0.53Release target

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions