Skip to content

openclaw.json locked root:root 444 at build time blocks post-onboard channel configuration #915

@harrism

Description

@harrism

Summary

openclaw.json is baked into the sandbox image as root:root 444 at build time.
This is intentional for protecting auth tokens and CORS config, but it also blocks
any post-onboard configuration that writes to the same file — specifically, adding
channel integrations (Telegram, WhatsApp, etc.).

Steps to reproduce

  1. Run nemoclaw onboard (no channels configured at this stage)
  2. Inside the sandbox, run openclaw channels add --channel telegram --token <token>
  3. Result: "Unknown channel: telegram" — because channels.telegram must
    pre-exist in openclaw.json before channels add can update it
  4. Attempt to add channels.telegram directly to openclaw.json:
    — file is root:root 444, unwritable by the sandbox user

Workaround

Requires raw kubectl exec from the host, where <sandbox-name> is the name
given to the sandbox at onboard time (e.g. the value passed to nemoclaw onboard):

docker exec openshell-cluster-nemoclaw \
  kubectl exec -n openshell <sandbox-name> -- \
  chmod 644 /sandbox/.openclaw/openclaw.json

docker exec openshell-cluster-nemoclaw \
  kubectl exec -n openshell <sandbox-name> -- \
  chown sandbox:sandbox /sandbox/.openclaw/openclaw.json

Then manually edit openclaw.json to add the channel config, and restart the gateway.
This access path is undocumented and requires knowledge of the internal k3s cluster
structure that NemoClaw manages.

Expected behavior

Either:

  • nemoclaw onboard accepts channel tokens as arguments and pre-populates `openclaw.json`
    before locking it, OR
  • A supported command exists (e.g. nemoclaw config set channels.telegram.token <token>)
    that can write to the protected file with appropriate privilege, OR
  • The channel config section of openclaw.json is separated from the auth/CORS config
    and stored in /sandbox/.openclaw-data (already writable by sandbox)

Environment

  • NemoClaw v0.1.0
  • OpenShell v0.0.14

Metadata

Metadata

Assignees

No one assigned

    Labels

    Getting StartedUse this label to identify setup, installation, or onboarding issues.bugSomething isn't workingpriority: highImportant issue that should be resolved in the next releasesecuritySomething isn't secure

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions