Skip to content

write_file hangs and never reaches the tool handler when called from the claude.ai remote client (v0.2.43 DXT) #532

Description

@vinsonconsulting

Environment

  • Desktop Commander 0.2.43, installed as a Claude Desktop extension (isDXT: true per get_config)
  • Claude Desktop on macOS (arm64), bundled Node 24.17.0, Electron 42.5.1
  • Client: claude-ai 0.1.0 (a chat session on claude.ai reaching the local server through the desktop app's remote MCP bridge)

What happens

In a single session, seconds apart:

  • get_config: responds in under a second
  • set_config_value (allowedDirectories): responds in under a second
  • read_file on a denied path: rejected in under a second, as expected
  • write_file (mode rewrite, 2 lines, local path inside allowedDirectories): no response at all. The client gives up at its 4 minute timeout.

Why I think the call never reaches the handler

Three observations from the same minute:

  1. The target file was never created. A stat immediately afterward returned ENOENT.
  2. usageStats.toolCounts.write_file read 282 before the call and 282 after, while counters for the surrounding successful calls all incremented.
  3. ~/Library/Logs/Claude/mcp-server-Desktop Commander.log has no tools/call entry for the request.

The server stays healthy: the next get_config answers instantly, so this is not a wedged process.

Since the handler is never entered, this may be a Claude Desktop bridge problem rather than a Desktop Commander one. Filing here first because you see far more claude-ai client traffic than I do. Glad to take it to Anthropic instead if that is your read.

History

Same symptom on 0.2.42 under an npx install (June 2026), also on local ~/GitHub paths, so it is not tied to DXT packaging or to cloud-synced paths. It has recurred across at least three sessions on two versions.

Workaround

start_process with a single non-nested heredoc writes reliably from the same remote session, including a 55 line file written moments after the hang above.

Happy to provide full logs or test a patched build.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions