Files
tracer-cloud--opensre/tests/e2e/rca/openclaw_stdio_command_not_found.md
T
wehub-resource-sync 4b6817381b
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00

5.4 KiB

Alert: [FIRING:1] OpenClaw CLI Binary Not Found — stdio MCP Bridge Broken

Source

OpenSRE worker (stdio MCP transport — local host)

Message

Firing

opensre integrations verify openclaw is returning:

OpenClaw bridge validation failed: Command not found: openclaw-mcp
Hint: OpenClaw's current MCP bridge is exposed via `openclaw mcp serve`, not `openclaw-mcp`.
Install the OpenClaw CLI or set `OPENCLAW_MCP_COMMAND` to the full executable path.

The opensre worker is configured with OPENCLAW_MCP_COMMAND=openclaw-mcp which was the binary name in OpenClaw ≤ v2.0. Since v2.1.0 the MCP bridge is started via openclaw mcp serve. Every stdio-mode MCP bridge call raises FileNotFoundError.

Labels:

  • alertname = OpenClawStdioCommandNotFound
  • severity = high
  • service = opensre-worker
  • environment = staging
  • pipeline_name = openclaw_mcp

Annotations:

  • error = Command not found: openclaw-mcp
  • command = openclaw-mcp
  • transport = stdio
  • fix = Set OPENCLAW_MCP_COMMAND=openclaw and OPENCLAW_MCP_ARGS='mcp serve'

Alert Metadata

{
  "title": "[FIRING:1] OpenClaw CLI Binary Not Found — stdio MCP Bridge Broken",
  "state": "alerting",
  "commonLabels": {
    "alertname": "OpenClawStdioCommandNotFound",
    "severity": "high",
    "service": "opensre-worker",
    "environment": "staging",
    "pipeline_name": "openclaw_mcp"
  },
  "commonAnnotations": {
    "summary": "opensre cannot find the openclaw-mcp binary. The command was renamed to 'openclaw mcp serve' in v2.1.0.",
    "description": "FileNotFoundError: [Errno 2] No such file or directory: 'openclaw-mcp'. The opensre worker has OPENCLAW_MCP_COMMAND=openclaw-mcp but this binary no longer exists. In OpenClaw v2.1.0 the stdio MCP bridge entrypoint changed from the standalone 'openclaw-mcp' binary to 'openclaw mcp serve'. All three bridge tools are permanently unavailable until the config is corrected.",
    "error": "Command not found: openclaw-mcp",
    "command": "openclaw-mcp",
    "transport": "stdio",
    "openclaw_version_breaking_change": "v2.1.0",
    "fault_injection_script": "export OPENCLAW_MCP_COMMAND=openclaw-mcp",
    "fix": "export OPENCLAW_MCP_COMMAND=openclaw && export OPENCLAW_MCP_ARGS='mcp serve'"
  },
  "version": "4",
  "groupKey": "{}:{alertname=\"OpenClawStdioCommandNotFound\"}",
  "truncatedAlerts": 0,
  "alerts": [
    {
      "status": "firing",
      "labels": {
        "alertname": "OpenClawStdioCommandNotFound",
        "severity": "high",
        "service": "opensre-worker",
        "environment": "staging",
        "instance": "opensre-worker-staging-02"
      },
      "annotations": {
        "summary": "openclaw-mcp binary not found — legacy command removed in v2.1.0",
        "description": "FileNotFoundError on 'openclaw-mcp'. Correct command is 'openclaw mcp serve'.",
        "error": "Command not found: openclaw-mcp"
      },
      "startsAt": "2026-05-11T07:00:00Z",
      "endsAt": "0001-01-01T00:00:00Z",
      "generatorURL": "",
      "fingerprint": "openclaw-stdio-command-not-found-001"
    }
  ]
}

Fault Injection Script

The following script reproduces this alert against a real local OpenClaw install:

#!/usr/bin/env bash
# inject_bad_command.sh — configure the legacy binary name to break stdio mode
set -euo pipefail

SAVED_COMMAND="${OPENCLAW_MCP_COMMAND:-}"
SAVED_ARGS="${OPENCLAW_MCP_ARGS:-}"

echo "[inject] Switching OPENCLAW_MCP_COMMAND to legacy 'openclaw-mcp'..."
export OPENCLAW_MCP_MODE=stdio
export OPENCLAW_MCP_COMMAND=openclaw-mcp
unset OPENCLAW_MCP_ARGS

echo "[inject] Verifying fault is active..."
opensre integrations verify openclaw && echo "ERROR: verify passed unexpectedly" && exit 1 || true

echo "[inject] Fault confirmed. 'Command not found: openclaw-mcp' triggered."
echo "[inject] Run 'opensre investigate' with the alert JSON above to get RCA."
echo "[inject] To restore:"
echo "  export OPENCLAW_MCP_COMMAND=${SAVED_COMMAND:-openclaw}"
echo "  export OPENCLAW_MCP_ARGS='${SAVED_ARGS:-mcp serve}'"