[GH-ISSUE #3690] [Bug] MCP npx launcher fails on unrelated workspace overrides (EOVERRIDE; observed in OpenCode v2) #1402

Closed
opened 2026-10-16 21:05:08 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @lunarmoon26 on GitHub (Oct 14, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/3690

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

MCP or agent integration

Observed behavior

The configured package-runner launch, npx -y rea-agents@6.4.0 mcp, fails before REA starts when OpenCode opens a workspace whose package.json contains a direct-dependency override that npm rejects. OpenCode reports a failed MCP connection with EOVERRIDE.

This is a launcher robustness/reporting concern, not a demonstrated OpenCode V2 compatibility defect or REA runtime defect. The workspace uses Bun; its override configuration is invalid under npm's rules. npm's rejection itself is expected. The surprising coupling is that this unrelated workspace configuration prevents the globally configured REA server from starting.

Reproduction

Actually reproduced once in an isolated temporary directory, independently of OpenCode. Create this package.json:

{
  "name": "rea-launcher-repro",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "mermaid": "^11.15.0"
  },
  "overrides": {
    "mermaid": "11.16.1"
  }
}

With REA 6.4.0 already present in the npm execution cache, run from that directory:

npx --offline -y rea-agents@6.4.0 mcp

Observed exit code: 1. The temporary directory was removed afterward. No dependency installation or network access was needed for this reproduction.

The original observed OpenCode launch used npx -y rea-agents@6.4.0 mcp without --offline, with no explicit MCP cwd. Its npm log identifies the workspace as the working directory. There was no project/ancestor OpenCode configuration overriding the global REA entry.

Expected behavior

Proposed robustness expectation, not a verified existing contract: a global REA MCP launcher should avoid depending on the caller workspace's npm dependency graph, or documentation/diagnostics should clearly explain this limitation and provide an isolated/direct-executable alternative.

REA's installation guide documents pinned package-runner MCP registrations. OpenCode V2's local MCP documentation documents that the workspace is the default working directory.

Impact and scope

REA MCP is unavailable in the affected workspace. OpenCode logs show the same REA registration successfully connected in other directories on the same machine earlier that day. The minimal fixture reproduced the same error once. No frequency beyond those observations, regression boundary, other-client coverage, or data-integrity impact has been established.

REA version

6.4.0, verified from the cached installed package's package.json; the configured launch pins rea-agents@6.4.0.

Runtime and platform

OpenCode v2.0.26; Node.js v24.19.0; npm 11.17.0; Linux 7.0.0-38-generic x86_64. Original workspace package manager: Bun 1.3.14. No native analysis engine is reached.

Target and artifact context

Not applicable: MCP startup, before any target is opened.

Interface

MCP

Earliest failure stage

Setup or provider admission — specifically the npm package-runner stage before REA's entrypoint, not REA provider admission.

Relevant output or evidence

Minimal reproduction stderr:

npm error code EOVERRIDE
npm error Override for mermaid@^11.15.0 conflicts with direct dependency

Original npm debug log, recorded at 2026-10-14T21:12:23Z (paths omitted):

verbose title npm exec rea-agents@6.4.0 mcp
verbose argv "exec" "--yes" "--" "rea-agents@6.4.0" "mcp"
verbose stack Error: Override for mermaid@^11.15.0 conflicts with direct dependency
verbose stack     at Node.assertRootOverrides (.../@npmcli/arborist/lib/node.js:1398:29)
verbose stack     at #loadActual (.../@npmcli/arborist/lib/arborist/load-actual.js:120:24)
verbose stack     at async exec (.../libnpmexec/lib/index.js:192:21)
error code EOVERRIDE
verbose exit 1

OpenCode's server log at the same timestamp reports mcp transport error followed by mcp connect failed for server=rea, carrying that npm error.

Typed outcome or recovery expected

No MCP-typed error can be emitted by REA because its process entrypoint is not reached. A setup/doctor warning or documented recovery route would be useful.

Analysis or suspected cause

Source-derived: npm Arborist rejects a direct dependency when its override spec differs from the declared spec, even when the pinned version satisfies the declared range. npx inspects the current workspace before executing REA. OpenCode's workspace-default working directory exposes this coupling.

Possible remedies for maintainer consideration: offer an installed executable launcher that bypasses npx project inspection, or document an isolated package-runner invocation. Preserve intentional workspace-relative REA behavior if changing launch directories. These remedies have not been validated here.

Additional context

The actual global registration uses legacy mcp.rea syntax with enabled: true; OpenCode V2 accepts it and exposes it as mcp.servers.rea. The failure is not evidence that this configuration syntax is broken. No credentials were required or implicated. The minimal offline reproduction demonstrates that OpenCode is not necessary to trigger the npm failure.

No fix or newer REA release was tested. This report was prepared with AI assistance from local logs, installed-package inspection, and the explicitly described minimal reproduction.

Originally created by @lunarmoon26 on GitHub (Oct 14, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/3690 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area MCP or agent integration ### Observed behavior The configured package-runner launch, `npx -y rea-agents@6.4.0 mcp`, fails before REA starts when OpenCode opens a workspace whose `package.json` contains a direct-dependency override that npm rejects. OpenCode reports a failed MCP connection with `EOVERRIDE`. This is a launcher robustness/reporting concern, **not a demonstrated OpenCode V2 compatibility defect or REA runtime defect**. The workspace uses Bun; its override configuration is invalid under npm's rules. npm's rejection itself is expected. The surprising coupling is that this unrelated workspace configuration prevents the globally configured REA server from starting. ### Reproduction Actually reproduced once in an isolated temporary directory, independently of OpenCode. Create this `package.json`: ```json { "name": "rea-launcher-repro", "version": "1.0.0", "private": true, "dependencies": { "mermaid": "^11.15.0" }, "overrides": { "mermaid": "11.16.1" } } ``` With REA 6.4.0 already present in the npm execution cache, run from that directory: ```sh npx --offline -y rea-agents@6.4.0 mcp ``` Observed exit code: `1`. The temporary directory was removed afterward. No dependency installation or network access was needed for this reproduction. The original observed OpenCode launch used `npx -y rea-agents@6.4.0 mcp` without `--offline`, with no explicit MCP `cwd`. Its npm log identifies the workspace as the working directory. There was no project/ancestor OpenCode configuration overriding the global REA entry. ### Expected behavior Proposed robustness expectation, not a verified existing contract: a global REA MCP launcher should avoid depending on the caller workspace's npm dependency graph, or documentation/diagnostics should clearly explain this limitation and provide an isolated/direct-executable alternative. REA's [installation guide](https://github.com/morluto/rea/blob/main/docs/installation.md#review-setup-changes) documents pinned package-runner MCP registrations. OpenCode V2's [local MCP documentation](https://opencode.ai/v2/docs/mcp-servers#local) documents that the workspace is the default working directory. ### Impact and scope REA MCP is unavailable in the affected workspace. OpenCode logs show the same REA registration successfully connected in other directories on the same machine earlier that day. The minimal fixture reproduced the same error once. No frequency beyond those observations, regression boundary, other-client coverage, or data-integrity impact has been established. ### REA version 6.4.0, verified from the cached installed package's `package.json`; the configured launch pins `rea-agents@6.4.0`. ### Runtime and platform OpenCode v2.0.26; Node.js v24.19.0; npm 11.17.0; Linux 7.0.0-38-generic x86_64. Original workspace package manager: Bun 1.3.14. No native analysis engine is reached. ### Target and artifact context Not applicable: MCP startup, before any target is opened. ### Interface MCP ### Earliest failure stage Setup or provider admission — specifically the npm package-runner stage before REA's entrypoint, not REA provider admission. ### Relevant output or evidence Minimal reproduction stderr: ```text npm error code EOVERRIDE npm error Override for mermaid@^11.15.0 conflicts with direct dependency ``` Original npm debug log, recorded at `2026-10-14T21:12:23Z` (paths omitted): ```text verbose title npm exec rea-agents@6.4.0 mcp verbose argv "exec" "--yes" "--" "rea-agents@6.4.0" "mcp" verbose stack Error: Override for mermaid@^11.15.0 conflicts with direct dependency verbose stack at Node.assertRootOverrides (.../@npmcli/arborist/lib/node.js:1398:29) verbose stack at #loadActual (.../@npmcli/arborist/lib/arborist/load-actual.js:120:24) verbose stack at async exec (.../libnpmexec/lib/index.js:192:21) error code EOVERRIDE verbose exit 1 ``` OpenCode's server log at the same timestamp reports `mcp transport error` followed by `mcp connect failed` for `server=rea`, carrying that npm error. ### Typed outcome or recovery expected No MCP-typed error can be emitted by REA because its process entrypoint is not reached. A setup/doctor warning or documented recovery route would be useful. ### Analysis or suspected cause Source-derived: npm Arborist rejects a direct dependency when its override spec differs from the declared spec, even when the pinned version satisfies the declared range. `npx` inspects the current workspace before executing REA. OpenCode's workspace-default working directory exposes this coupling. Possible remedies for maintainer consideration: offer an installed executable launcher that bypasses `npx` project inspection, or document an isolated package-runner invocation. Preserve intentional workspace-relative REA behavior if changing launch directories. These remedies have not been validated here. ### Additional context The actual global registration uses legacy `mcp.rea` syntax with `enabled: true`; OpenCode V2 accepts it and exposes it as `mcp.servers.rea`. The failure is not evidence that this configuration syntax is broken. No credentials were required or implicated. The minimal offline reproduction demonstrates that OpenCode is not necessary to trigger the npm failure. No fix or newer REA release was tested. This report was prepared with AI assistance from local logs, installed-package inspection, and the explicitly described minimal reproduction.
Author
Owner

@Abdooo2235 commented on GitHub (Oct 14, 2026):

@morluto I've opened #3763 with a documented recovery path using REA's existing installed-executable registration.

I reproduced EOVERRIDE, then verified isolated setup and a successful MCP connection from the same conflicting workspace (170 tools), with the workspace manifest unchanged. The setup tests (20), repository checks, and documentation checks passed. The PR records the Windows verification scope and remaining limitations.

<!-- gh-comment-id:6180943124 --> @Abdooo2235 commented on GitHub (Oct 14, 2026): @morluto I've opened #3763 with a documented recovery path using REA's existing installed-executable registration. I reproduced `EOVERRIDE`, then verified isolated setup and a successful MCP connection from the same conflicting workspace (170 tools), with the workspace manifest unchanged. The setup tests (20), repository checks, and documentation checks passed. The PR records the Windows verification scope and remaining limitations.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1402
No description provided.