Skip to content

ACPX runtime fails on nix-openclaw immutable store (plugin tries to write node_modules under /nix/store) #73

@kimptoc

Description

@kimptoc

Summary (provided by Codex)

When ACPX runtime is enabled in nix-openclaw, the plugin loads but ACP sessions fail with:

sessions_spawn runtime=acpACP runtime backend is currently unavailable. Try again in a moment.

Gateway logs show ACPX trying to create/install plugin-local dependencies inside /nix/store, which is read-only.

Environment

  • nix-openclaw on Linux (Home Manager)
  • OpenClaw gateway package from nix store
  • ACPX runtime plugin enabled

Actual behavior

Logs include errors like:

  • acpx local binary unavailable ... running plugin-local install
  • acpx runtime setup failed ... ENOENT ... mkdir '/nix/store/.../extensions/acpx/node_modules/acpx'

As a result, ACP runtime backend never becomes available.

Expected behavior

On Nix (immutable package paths), ACPX should start without attempting writes to plugin directory under /nix/store.

Repro

  1. Enable ACPX runtime plugin in nix-openclaw config.
  2. Rebuild/switch and restart gateway.
  3. Attempt sessions_spawn runtime=acp.
  4. Observe runtime unavailable + ENOENT in logs.

Suggested fix direction

  • Treat extension directory as read-only in packaged builds.
  • Resolve acpx binary from packaged dependency path (or configurable command) instead of plugin-local install.
  • If write/install is required, use a writable runtime cache path ($XDG_STATE_HOME or similar), not plugin install dir.
  • Add explicit detection/logging for immutable store paths and skip install fallback.

How it could work upstream (design): package acpx with gateway and have the ACPX plugin use that binary directly first, with plugin-local install only as a non-Nix fallback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions