Skip to content

Toolkit MCP routes fail with SQLite owner lock in local daemon #1618

Description

@jamieb72-afk

Executor version

1.5.40. The same code path is present on 1.5.41.

Reproduction

  1. Start the local headless daemon with at least one toolkit configured.
  2. Initialize the default /mcp endpoint. It succeeds.
  3. Send the same MCP initialize request to /mcp/toolkits/<slug>.

Expected

The toolkit-scoped MCP session initializes successfully.

Actual

The toolkit route returns HTTP 500 and the daemon logs:

Failed to open local SQLite data. Close other Executor processes and retry, or run with --log-level debug for details.

Only one Executor process is running. That process already owns the data-directory lock. createConfigForResource calls createExecutorHandle for the toolkit, which attempts to acquire the same local SQLite ownership lock a second time inside the daemon.

Proposed fix

Reuse the shared daemon database when constructing a toolkit-scoped executor, while retaining the toolkit-specific plugin configuration. A regression test should initialize a toolkit MCP route in the same server process.

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