Skip to content

v2026.2.26: bundled plugin manifests rejected as 'unsafe plugin manifest path' with pnpm global install #28122

@seraphimarchangel147

Description

@seraphimarchangel147

Description

After upgrading from v2026.2.25 to v2026.2.26 via pnpm add -g openclaw@latest, the gateway refuses to start with config validation errors for every bundled extension plugin:

plugins: plugin: unsafe plugin manifest path: /home/yvy/.local/share/pnpm/global/5/.pnpm/openclaw@2026.2.26_.../node_modules/openclaw/extensions/acpx/openclaw.plugin.json (validation)
plugins: plugin: unsafe plugin manifest path: /home/yvy/.local/share/pnpm/global/5/.pnpm/openclaw@2026.2.26_.../node_modules/openclaw/extensions/telegram/openclaw.plugin.json (validation)
... (35+ bundled extensions, all rejected)

openclaw doctor --fix cannot resolve it. Downgrading to v2026.2.25 resolves the issue immediately.

Root Cause

v2026.2.26 introduced several security hardening changes for path resolution:

  • Security/Sandbox path alias guard — reject broken symlink targets by resolving through existing ancestors
  • Security/Workspace FS boundary aliases — harden canonical boundary resolution for non-existent-leaf symlink aliases
  • Security/Config includes — harden $include file loading with verified-open reads, reject hardlinked include aliases

pnpm's global store uses a content-addressable symlink layout:

~/.local/share/pnpm/global/5/node_modules/openclaw
  -> ../.pnpm/openclaw@2026.2.26_.../node_modules/openclaw

The new path validation appears to resolve plugin manifest paths through these symlinks and then reject them as "unsafe" because the resolved path falls outside the expected boundary.

Steps to Reproduce

  1. Install openclaw globally via pnpm: pnpm add -g openclaw@2026.2.26
  2. Run openclaw gateway
  3. All bundled extension openclaw.plugin.json manifests are rejected as unsafe

Expected Behavior

Bundled plugin manifests shipped inside the openclaw package should be trusted regardless of the symlink layout used by the package manager (pnpm, npm, yarn, etc.).

Workaround

Downgrade to v2026.2.25: pnpm add -g openclaw@2026.2.25

Environment

  • openclaw: v2026.2.26 (bc50708)
  • Package manager: pnpm v10.29.1
  • Node: v25.6.0 (via nvm)
  • OS: Linux (WSL2) 6.6.87.2-microsoft-standard-WSL2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions