Skip to content

[DGX Station GB300][Security] After rebuild, OpenClaw sandbox shields report unlocked but skills dir + credentials stay locked — skill install fails and agent turns EACCES #7985

Description

@wangericnv

Description

After nemoclaw {sandbox} rebuild --yes, an OpenClaw sandbox ends up in a contradictory shields state: shields status reports the config UNLOCKED (permissive, "auto-unlock for rebuild"), but the agent skills directory and the credentials directory remain LOCKED. As a result, skill install fails claiming shields are up, and OpenClaw agent turns fail with EACCES on the credentials file. shields down cannot recover the state because it believes the config is already unlocked.

Platform scope: Reproduced on DGX Station GB300 (aarch64). Other platforms not tested.
Regression: Unknown — earlier versions not tested.

Likely the same shields-lock family as #7538 (there: shields down fails from a valid mutable-default posture and rollback flips it to locked). This report is the rebuild trigger and additionally surfaces the skill-install block and the agent-turn EACCES.

Environment

Device:        DGX Station GB300
OS:            Ubuntu 24.04.4 LTS
Architecture:  aarch64
NemoClaw:      v0.0.98
Agent:         OpenClaw

Steps to Reproduce

  1. Onboard an OpenClaw sandbox and exercise shields (e.g. nemoclaw {sandbox} shields up then shields down).
  2. Rebuild the sandbox: nemoclaw {sandbox} rebuild --yes.
  3. Check shields: nemoclaw {sandbox} shields status.
  4. Try to install a skill: nemoclaw {sandbox} skill install /tmp/some-skill.
  5. Run an agent turn: nemoclaw {sandbox} exec -- openclaw agent --agent main --json -m "Reply OK".
  6. Try to lower shields: nemoclaw {sandbox} shields down.

Expected Result

After rebuild with shields reporting unlocked, the agent skills directory and credentials are actually accessible: skill install succeeds and agent turns run normally. If any lock remains, shields down clears it.

Actual Result

Step 3 shields status:  "Reason: auto-unlock for rebuild | Policy: permissive"  (reports UNLOCKED)
Step 4 skill install:   RC=1 -> "Skill uploads write to the agent skills directory, which is locked
                        while shields are up. If shields are up, run `nemoclaw {sandbox} shields down`
                        before installing skills."
Step 5 agent turn:      "GatewayClientRequestError: Error: EACCES: permission denied, lstat
                        '/sandbox/.openclaw/credentials/oauth.json'" (reply text becomes
                        "Agent couldn't generate a response").
                        An `exec -- ls -ld /sandbox/.openclaw/credentials` also prints
                        "OpenClaw permission cleanup failed".
Step 6 shields down:    "Config is already unlocked for {sandbox} (since ...). Run
                        `nemoclaw shields up` first, or use --extend (not yet implemented)." -> cannot recover.

So shields status and the actual filesystem lock state disagree: status says unlocked, but skills dir + credentials stay locked; installs and agent turns are broken; shields down refuses because it thinks the config is already unlocked. Only a full re-onboard clears it.

Logs

Not captured beyond the Actual Result output above.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: local-modelsLocal model providers, downloads, launch, or connectivityarea: securitySecurity controls, permissions, secrets, or hardeningarea: skillsSkills, agent behaviors, prompts, or skill packagingintegration: openclawOpenClaw integration behaviorplatform: arm64Affects ARM64 or aarch64 architectureplatform: dgx-stationAffects DGX Station hardware or workflows

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions