openclaw - ✅(Solved) Fix PR #22280 Regression: scope upgrade still requires pairing on 2026.4.25 (VPS/lan bind) [1 pull requests, 2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#72857Fetched 2026-04-28 06:31:20
View on GitHub
Comments
2
Participants
2
Timeline
5
Reactions
0
Author
Timeline (top)
commented ×2closed ×1cross-referenced ×1labeled ×1

Despite PR #22280 being merged (which fixes "Local paired-device scope upgrades can require interactive pairing"), the issue persists on OpenClaw 2026.4.25 with a VPS/lan bind configuration.

Error Message

gateway connect failed: GatewayClientRequestError: scope upgrade pending approval (requestId: ...)
Error: gateway closed (1008): pairing required: device is asking for more scopes than currently approved

Root Cause

Despite PR #22280 being merged (which fixes "Local paired-device scope upgrades can require interactive pairing"), the issue persists on OpenClaw 2026.4.25 with a VPS/lan bind configuration.

Fix Action

Fix / Workaround

  • Severity: Medium-High (blocks multi-agent workflows)
  • Workaround: None for sessions.spawn
  • Mitigation: Trading scripts run independently (don't need gateway)
  • Use Case Affected: VPS deployments with bind: "lan" for remote access

Affected: VPS and remote server deployments using gateway bind: "lan" (0.0.0.0:18789). Primarily affects users running OpenClaw on cloud servers with remote SSH access. Does NOT affect standard localhost/loopback installations. Severity: Blocks workflow Frequency: Always (for affected lan bind configurations) Consequence: Cannot spawn subagents/sessions via sessions.spawn, preventing multi-agent workflows, real-time agent delegation, and advanced automation patterns. Forces workaround using Oracle CLI or direct script execution instead of native OpenClaw agent spawning.

PR fix notes

PR #72870: fix: allow silent local pairing for scope-upgrade

Description (problem / solution / changelog)

Summary

Fix regression from PR #22280 where scope auto-approval did not work for VPS/server lan bind (0.0.0.0) configurations. The fix removes the unconditional silent: false for scope-upgrade, allowing allowSilentLocalPairing to determine if the pairing request should be silent based on the pairing locality.

Changes

  • src/gateway/server/ws-connection/message-handler.ts: Remove the reason === "scope-upgrade" ? false : condition that was forcing silent to always be false for scope-upgrade, regardless of whether allowSilentLocalPairing returns true.

Testing

  • pnpm vitest run src/gateway/server/ws-connection/handshake-auth-helpers.test.ts - 81 tests pass
  • pnpm vitest run src/gateway/probe.test.ts - 45 tests pass
  • pnpm vitest run src/gateway/server-runtime-config.test.ts - 28 tests pass
  • pnpm check passes with 0 errors

Fixes openclaw/openclaw#72857

Changed files

  • src/gateway/server/ws-connection/message-handler.ts (modified, +3/-5)

Code Example

npm install -g openclaw@2026.4.25
   openclaw --version  # Should show: 2026.4.25 (aa36ee6)

---

{
     "gateway": {
       "mode": "local",
       "auth": {
         "mode": "token",
         "token": "any-token-here"
       },
       "port": 18789,
       "bind": "lan",
       "nodes": {
         "denyCommands": [],
         "allowCommands": ["sessions.spawn"],
         "pairing": {
           "autoApproveCidrs": ["127.0.0.1/8", "0.0.0.0/0"]
         }
       }
     }
   }

---

openclaw gateway restart
   # Verify: openclaw gateway probe (shows "Reachable: yes")

---

openclaw cron list
   # OR: openclaw agents spawn --task "test"
   # OR: openclaw sessions spawn --task "test"

---

# Confirm versions
openclaw --version  # 2026.4.25 (aa36ee6)

# Confirm gateway is reachable
openclaw gateway probe
# Output shows: Reachable: yes, but scope commands fail

# Confirm config is loaded
grep -A5 '"allowCommands"' ~/.openclaw/openclaw.json
# Should show: ["sessions.spawn", ...]

---

#!/bin/bash
# save as: test-scope.sh
openclaw gateway restart
sleep 3
openclaw cron list 2>&1 | grep -E "(scope|pairing|Error)" && echo "BUG REPRODUCED" || echo "WORKING"

---

gateway connect failed: GatewayClientRequestError: scope upgrade pending approval (requestId: ...)
Error: gateway closed (1008): pairing required: device is asking for more scopes than currently approved

---

"nodes": {
  "denyCommands": [
    "camera.list",
    "screen.capture",
    "contacts.list",
    "sms.list"
  ],
  "allowCommands": [
    "sessions.spawn",
    "sessions.list",
    "sessions.send",
    "exec.run",
    "exec.spawn"
  ],
  "pairing": {
    "autoApproveCidrs": [
      "127.0.0.1/8",
      "0.0.0.0/0"
    ]
  },
  "trust": "permissive"
}

---
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Despite PR #22280 being merged (which fixes "Local paired-device scope upgrades can require interactive pairing"), the issue persists on OpenClaw 2026.4.25 with a VPS/lan bind configuration.

Steps to reproduce

  1. Install OpenClaw (if not already):

    npm install -g [email protected]
    openclaw --version  # Should show: 2026.4.25 (aa36ee6)
  2. Configure gateway with lan bind: Edit ~/.openclaw/openclaw.json:

    {
      "gateway": {
        "mode": "local",
        "auth": {
          "mode": "token",
          "token": "any-token-here"
        },
        "port": 18789,
        "bind": "lan",
        "nodes": {
          "denyCommands": [],
          "allowCommands": ["sessions.spawn"],
          "pairing": {
            "autoApproveCidrs": ["127.0.0.1/8", "0.0.0.0/0"]
          }
        }
      }
    }
  3. Start gateway:

    openclaw gateway restart
    # Verify: openclaw gateway probe (shows "Reachable: yes")
  4. Attempt any scope-requiring command:

    openclaw cron list
    # OR: openclaw agents spawn --task "test"
    # OR: openclaw sessions spawn --task "test"
  5. Observe error:

    • Expected: Command executes successfully
    • Actual: Error: scope upgrade pending approval / pairing required

Environment Verification

# Confirm versions
openclaw --version  # 2026.4.25 (aa36ee6)

# Confirm gateway is reachable
openclaw gateway probe
# Output shows: Reachable: yes, but scope commands fail

# Confirm config is loaded
grep -A5 '"allowCommands"' ~/.openclaw/openclaw.json
# Should show: ["sessions.spawn", ...]

Alternative: Quick Test Script

#!/bin/bash
# save as: test-scope.sh
openclaw gateway restart
sleep 3
openclaw cron list 2>&1 | grep -E "(scope|pairing|Error)" && echo "BUG REPRODUCED" || echo "WORKING"

Run: chmod +x test-scope.sh && ./test-scope.sh

Expected behavior

Per PR #22280, local paired-device scope upgrades should silently auto-approve when:

  • Device has existing paired-device context
  • Connection is local (127.0.0.1/localhost)
  • Using allowCommands + autoApproveCidrs configuration

Actual behavior

Persistent "scope upgrade pending approval" error preventing sessions.spawn and related commands.

OpenClaw version

2026.4.25 (aa36ee6)

Operating system

Ubuntu 24.04.4 LTS

Install method

npm/pnpm

Model

ollama/kimi-k2.5:cloud

Provider / routing chain

openclaw -> ollama -> kimi-k2.5

Additional provider/model setup details

Environment

  • OpenClaw Version: 2026.4.25 (aa36ee6)
  • OS: Ubuntu 24.04.4 LTS
  • Install Method: npm/pnpm
  • Gateway Bind: lan (0.0.0.0:18789)
  • Auth Mode: token

Error Message

gateway connect failed: GatewayClientRequestError: scope upgrade pending approval (requestId: ...)
Error: gateway closed (1008): pairing required: device is asking for more scopes than currently approved

Configuration

gateway.nodes

"nodes": {
  "denyCommands": [
    "camera.list",
    "screen.capture",
    "contacts.list",
    "sms.list"
  ],
  "allowCommands": [
    "sessions.spawn",
    "sessions.list",
    "sessions.send",
    "exec.run",
    "exec.spawn"
  ],
  "pairing": {
    "autoApproveCidrs": [
      "127.0.0.1/8",
      "0.0.0.0/0"
    ]
  },
  "trust": "permissive"
}

session.dmScope

Tried both "per-channel-peer" and "permissive".

What We've Tried

  • Added allowCommands to gateway.nodes (via Control UI and manual edit)
  • Added pairing.autoApproveCidrs with 127.0.0.1/8 and 0.0.0.0/0
  • Changed session.dmScope to "permissive"
  • Tried auth.mode: "none" (caused gateway crash, reverted)
  • Made config file immutable with chattr +i (prevented reverting)
  • Verified config persists after restarts
  • Gateway runs and listens on port 18789
  • Tried /pair command (gives iOS pairing code, not applicable)
  • Verified with openclaw gateway probe — gateway reachable but scope blocked

Related Issues/PRs

  • Issue #22279: "Local paired-device scope upgrades can require interactive pairing instead of silent approval"
  • PR #22280: "Fix local paired-device reconnect regressions where role/scope upgrades could return pairing required"

Impact

  • Severity: Medium-High (blocks multi-agent workflows)
  • Workaround: None for sessions.spawn
  • Mitigation: Trading scripts run independently (don't need gateway)
  • Use Case Affected: VPS deployments with bind: "lan" for remote access

Hypothesis

PR #22280 may not cover the bind: "lan" case (0.0.0.0:18789), only bind: "loopback". The VPS configuration with lan binding may be treated differently than true localhost.

Request

  1. Confirm if PR #22280 covers bind: "lan" configurations
  2. Advise on additional configuration needed for VPS/lan deployments
  3. Or confirm if this is a regression requiring additional fix

Logs, screenshots, and evidence

Impact and severity

Affected: VPS and remote server deployments using gateway bind: "lan" (0.0.0.0:18789). Primarily affects users running OpenClaw on cloud servers with remote SSH access. Does NOT affect standard localhost/loopback installations. Severity: Blocks workflow Frequency: Always (for affected lan bind configurations) Consequence: Cannot spawn subagents/sessions via sessions.spawn, preventing multi-agent workflows, real-time agent delegation, and advanced automation patterns. Forces workaround using Oracle CLI or direct script execution instead of native OpenClaw agent spawning.

Additional information

NOT_ENOUGH_INFO

extent analysis

TL;DR

The issue might be due to PR #22280 not covering the bind: "lan" case, and additional configuration or a fix might be needed for VPS/lan deployments.

Guidance

  1. Verify PR #22280 coverage: Check if PR #22280 explicitly covers bind: "lan" configurations or if it's limited to bind: "loopback".
  2. Test with loopback bind: Temporarily change the bind configuration to "loopback" and verify if the issue persists to isolate the problem.
  3. Review gateway logs: Inspect the gateway logs for any errors or warnings related to scope upgrades or pairing to gather more information.
  4. Check for additional configuration options: Look for any additional configuration options that might be required for bind: "lan" configurations, such as specific settings for VPS deployments.

Example

No specific code example is provided as the issue seems to be related to configuration and deployment specifics rather than a code snippet.

Notes

The provided information suggests that the issue might be specific to the bind: "lan" configuration, which could be treated differently than the bind: "loopback" case. Further investigation is needed to confirm if PR #22280 covers this scenario.

Recommendation

Apply a workaround by using a different bind configuration, such as "loopback", if possible, or wait for a potential fix that covers the bind: "lan" case. The reason is that the current configuration might not be supported by PR #22280, and changing the bind configuration could provide a temporary solution.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

Per PR #22280, local paired-device scope upgrades should silently auto-approve when:

  • Device has existing paired-device context
  • Connection is local (127.0.0.1/localhost)
  • Using allowCommands + autoApproveCidrs configuration

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix PR #22280 Regression: scope upgrade still requires pairing on 2026.4.25 (VPS/lan bind) [1 pull requests, 2 comments, 2 participants]