claude-code - 💡(How to fix) Fix mcp__Claude_Preview__preview_start reports success but never spawns the configured command (Windows 11) [1 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
anthropics/claude-code#56040Fetched 2026-05-05 05:59:44
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Timeline (top)
labeled ×5commented ×1

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL.

This is reproducible across every config variation I tried (different runtimes, paths, with/without cwd). Confirmed via a .bat wrapper that the configured command is never invoked at all — the bug is in the spawn step inside Preview, not in the configured runtime.

Error Message

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL. 7. Call mcp__Claude_Preview__preview_eval — returns chrome-error://chromewebdata/ or an Awaiting server… placeholder.

  • preview_start returns an error explaining what failed. In a session that depended on iterating UI changes with the preview_* family of tools (snapshot / screenshot / eval / console_logs), I had to fall back entirely to "edit, push, ask the user to look" — costing both time and credits across many turns of trial-and-error. Eventually I gave up trying to use the tool. On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL.
  1. Call mcp__Claude_Preview__preview_eval — returns chrome-error://chromewebdata/ or an Awaiting server… placeholder.
  • preview_start returns an error explaining what failed. In a session that depended on iterating UI changes with the preview_* family of tools (snapshot / screenshot / eval / console_logs), I had to fall back entirely to "edit, push, ask the user to look" — costing both time and credits across many turns of trial-and-error. Eventually I gave up trying to use the tool.

Error Messages/Logs

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL. 7. Call mcp__Claude_Preview__preview_eval — returns chrome-error://chromewebdata/ or an Awaiting server… placeholder.

  • preview_start returns an error explaining what failed. In a session that depended on iterating UI changes with the preview_* family of tools (snapshot / screenshot / eval / console_logs), I had to fall back entirely to "edit, push, ask the user to look" — costing both time and credits across many turns of trial-and-error. Eventually I gave up trying to use the tool.

Root Cause

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL.

This is reproducible across every config variation I tried (different runtimes, paths, with/without cwd). Confirmed via a .bat wrapper that the configured command is never invoked at all — the bug is in the spawn step inside Preview, not in the configured runtime.

Code Example

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "ops-hub",
      "runtimeExecutable": ".claude\\preview.bat",
      "runtimeArgs": [],
      "cwd": "C:/Users/jeroe/OneDrive/Bureaublad/EatClub/Claude Data/Claude Code/ops-hub",
      "port": 8765
    }
  ]
}

---

@echo off
echo [%DATE% %TIME%] preview.bat invoked, args=%* > "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] cwd=%CD% >> "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] launching python... >> "%TEMP%\preview-debug.log"
"C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe" -m http.server 8765 >> "%TEMP%\preview-debug.log" 2>&1

---

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "ops-hub",
      "runtimeExecutable": ".claude\\preview.bat",
      "runtimeArgs": [],
      "cwd": "C:/Users/jeroe/OneDrive/Bureaublad/EatClub/Claude Data/Claude Code/ops-hub",
      "port": 8765
    }
  ]
}

---

@echo off
echo [%DATE% %TIME%] preview.bat invoked, args=%* > "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] cwd=%CD% >> "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] launching python... >> "%TEMP%\preview-debug.log"
"C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe" -m http.server 8765 >> "%TEMP%\preview-debug.log" 2>&1

---



---

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "ops-hub",
      "runtimeExecutable": ".claude\\preview.bat",
      "runtimeArgs": [],
      "cwd": "C:/Users/jeroe/OneDrive/Bureaublad/EatClub/Claude Data/Claude Code/ops-hub",
      "port": 8765
    }
  ]
}

---

@echo off
echo [%DATE% %TIME%] preview.bat invoked, args=%* > "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] cwd=%CD% >> "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] launching python... >> "%TEMP%\preview-debug.log"
"C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe" -m http.server 8765 >> "%TEMP%\preview-debug.log" 2>&1
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Bug: mcp__Claude_Preview__preview_start reports success but never spawns the configured command (Windows 11)

Summary

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL.

This is reproducible across every config variation I tried (different runtimes, paths, with/without cwd). Confirmed via a .bat wrapper that the configured command is never invoked at all — the bug is in the spawn step inside Preview, not in the configured runtime.

Environment

  • OS: Microsoft Windows 11 Home 10.0.26200 (build 26200)
  • Shell: PowerShell 5.1.26100.8328 (default), Bash also available via Claude Code
  • Claude Code: Desktop client (Opus 4.7)
  • Python (real, installed via winget install Python.Python.3.13): 3.13.13 at C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe
  • Python on PATH (Microsoft Store alias): stub returning "3.14.3"

Reproduction

.claude/launch.json:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "ops-hub",
      "runtimeExecutable": ".claude\\preview.bat",
      "runtimeArgs": [],
      "cwd": "C:/Users/jeroe/OneDrive/Bureaublad/EatClub/Claude Data/Claude Code/ops-hub",
      "port": 8765
    }
  ]
}

.claude/preview.bat:

@echo off
echo [%DATE% %TIME%] preview.bat invoked, args=%* > "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] cwd=%CD% >> "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] launching python... >> "%TEMP%\preview-debug.log"
"C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe" -m http.server 8765 >> "%TEMP%\preview-debug.log" 2>&1

Steps:

  1. Save the two files above.
  2. Call mcp__Claude_Preview__preview_start with name: "ops-hub".
  3. Wait 5 seconds.
  4. Check for %TEMP%\preview-debug.log. It does not exist.
  5. Run tasklist /FI "IMAGENAME eq cmd.exe" and tasklist /FI "IMAGENAME eq python.exe". Neither shows the spawned process.
  6. Run netstat -ano | grep "LISTENING.*876[5-9]". Nothing listening.
  7. Call mcp__Claude_Preview__preview_eval — returns chrome-error://chromewebdata/ or an Awaiting server… placeholder.

Expected

Either:

  • The configured runtimeExecutable is actually invoked (the .bat would create the debug log, then python would bind 8765), or
  • preview_start returns an error explaining what failed.

Actual

preview_start returns success. The configured command is never spawned. No log file. No process. No port. preview_logs returns "No logs yet." indefinitely.

What I tried (all behaved the same — silent failure)

runtimeExecutableruntimeArgscwd setResult
python["-m", "http.server", "8765"]yesspawns Microsoft Store stub (zombie process, no port)
python["-m", "http.server", "8765"]nospawns Microsoft Store stub (zombie process, no port)
python3["-m", "http.server", "8765"]yessame as above
cmd.exe["/c", "python", "-m", "http.server", "8765"]yescmd starts but python never binds
py["-3", "-m", "http.server", "8765"]yesnothing spawned
Absolute path to real Python (C:/.../python.exe, forward slashes)["-m", "http.server", "8765"]yesnothing spawned
Absolute path (double backslashes)sameyesnothing spawned
Absolute path to real Pythonsameomittednothing spawned
.claude\preview.bat (proves whether the spawn happens at all)[]yes.bat never executed; no debug log created

Manual verification that real Python works fine when spawned by anything else:

  • Direct from PowerShell: python -m http.server 8770 → binds, serves files. ✓
  • Via Bash background tool: python -m http.server 8770 → binds, serves files. ✓
  • Via PowerShell Start-Process with the same args Preview is configured with → binds successfully. ✓

So the binary works in every spawning context except Claude Preview's own spawner.

Impact

In a session that depended on iterating UI changes with the preview_* family of tools (snapshot / screenshot / eval / console_logs), I had to fall back entirely to "edit, push, ask the user to look" — costing both time and credits across many turns of trial-and-error. Eventually I gave up trying to use the tool.

Suggested fix priorities

  1. Surface the spawn failure instead of returning Server started successfully. Even a generic "spawned process exited immediately" or "no process created" would have saved hours.
  2. Investigate why the Windows spawn path silently no-ops with the configurations above. Likely a process-creation flag or working-directory-with-spaces issue.
  3. Make preview_logs show spawn-side errors, not just stdout/stderr from the (never-started) child.

Happy to provide any further trace data on request.

What Should Happen?

Bug: mcp__Claude_Preview__preview_start reports success but never spawns the configured command (Windows 11)

Summary

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL.

This is reproducible across every config variation I tried (different runtimes, paths, with/without cwd). Confirmed via a .bat wrapper that the configured command is never invoked at all — the bug is in the spawn step inside Preview, not in the configured runtime.

Environment

  • OS: Microsoft Windows 11 Home 10.0.26200 (build 26200)
  • Shell: PowerShell 5.1.26100.8328 (default), Bash also available via Claude Code
  • Claude Code: Desktop client (Opus 4.7)
  • Python (real, installed via winget install Python.Python.3.13): 3.13.13 at C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe
  • Python on PATH (Microsoft Store alias): stub returning "3.14.3"

Reproduction

.claude/launch.json:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "ops-hub",
      "runtimeExecutable": ".claude\\preview.bat",
      "runtimeArgs": [],
      "cwd": "C:/Users/jeroe/OneDrive/Bureaublad/EatClub/Claude Data/Claude Code/ops-hub",
      "port": 8765
    }
  ]
}

.claude/preview.bat:

@echo off
echo [%DATE% %TIME%] preview.bat invoked, args=%* > "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] cwd=%CD% >> "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] launching python... >> "%TEMP%\preview-debug.log"
"C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe" -m http.server 8765 >> "%TEMP%\preview-debug.log" 2>&1

Steps:

  1. Save the two files above.
  2. Call mcp__Claude_Preview__preview_start with name: "ops-hub".
  3. Wait 5 seconds.
  4. Check for %TEMP%\preview-debug.log. It does not exist.
  5. Run tasklist /FI "IMAGENAME eq cmd.exe" and tasklist /FI "IMAGENAME eq python.exe". Neither shows the spawned process.
  6. Run netstat -ano | grep "LISTENING.*876[5-9]". Nothing listening.
  7. Call mcp__Claude_Preview__preview_eval — returns chrome-error://chromewebdata/ or an Awaiting server… placeholder.

Expected

Either:

  • The configured runtimeExecutable is actually invoked (the .bat would create the debug log, then python would bind 8765), or
  • preview_start returns an error explaining what failed.

Actual

preview_start returns success. The configured command is never spawned. No log file. No process. No port. preview_logs returns "No logs yet." indefinitely.

What I tried (all behaved the same — silent failure)

runtimeExecutableruntimeArgscwd setResult
python["-m", "http.server", "8765"]yesspawns Microsoft Store stub (zombie process, no port)
python["-m", "http.server", "8765"]nospawns Microsoft Store stub (zombie process, no port)
python3["-m", "http.server", "8765"]yessame as above
cmd.exe["/c", "python", "-m", "http.server", "8765"]yescmd starts but python never binds
py["-3", "-m", "http.server", "8765"]yesnothing spawned
Absolute path to real Python (C:/.../python.exe, forward slashes)["-m", "http.server", "8765"]yesnothing spawned
Absolute path (double backslashes)sameyesnothing spawned
Absolute path to real Pythonsameomittednothing spawned
.claude\preview.bat (proves whether the spawn happens at all)[]yes.bat never executed; no debug log created

Manual verification that real Python works fine when spawned by anything else:

  • Direct from PowerShell: python -m http.server 8770 → binds, serves files. ✓
  • Via Bash background tool: python -m http.server 8770 → binds, serves files. ✓
  • Via PowerShell Start-Process with the same args Preview is configured with → binds successfully. ✓

So the binary works in every spawning context except Claude Preview's own spawner.

Impact

In a session that depended on iterating UI changes with the preview_* family of tools (snapshot / screenshot / eval / console_logs), I had to fall back entirely to "edit, push, ask the user to look" — costing both time and credits across many turns of trial-and-error. Eventually I gave up trying to use the tool.

Suggested fix priorities

  1. Surface the spawn failure instead of returning Server started successfully. Even a generic "spawned process exited immediately" or "no process created" would have saved hours.
  2. Investigate why the Windows spawn path silently no-ops with the configurations above. Likely a process-creation flag or working-directory-with-spaces issue.
  3. Make preview_logs show spawn-side errors, not just stdout/stderr from the (never-started) child.

Happy to provide any further trace data on request.

Error Messages/Logs

Steps to Reproduce

Bug: mcp__Claude_Preview__preview_start reports success but never spawns the configured command (Windows 11)

Summary

On Windows 11, mcp__Claude_Preview__preview_start returns { status: "Server started successfully", port: 8766 } but the runtimeExecutable configured in .claude/launch.json is never executed. No process is spawned, no port is bound, no logs are produced. The browser surface in mcp__Claude_Preview__preview_eval returns either chrome-error://chromewebdata/ or an Awaiting server… placeholder data URL.

This is reproducible across every config variation I tried (different runtimes, paths, with/without cwd). Confirmed via a .bat wrapper that the configured command is never invoked at all — the bug is in the spawn step inside Preview, not in the configured runtime.

Environment

  • OS: Microsoft Windows 11 Home 10.0.26200 (build 26200)
  • Shell: PowerShell 5.1.26100.8328 (default), Bash also available via Claude Code
  • Claude Code: Desktop client (Opus 4.7)
  • Python (real, installed via winget install Python.Python.3.13): 3.13.13 at C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe
  • Python on PATH (Microsoft Store alias): stub returning "3.14.3"

Reproduction

.claude/launch.json:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "ops-hub",
      "runtimeExecutable": ".claude\\preview.bat",
      "runtimeArgs": [],
      "cwd": "C:/Users/jeroe/OneDrive/Bureaublad/EatClub/Claude Data/Claude Code/ops-hub",
      "port": 8765
    }
  ]
}

.claude/preview.bat:

@echo off
echo [%DATE% %TIME%] preview.bat invoked, args=%* > "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] cwd=%CD% >> "%TEMP%\preview-debug.log"
echo [%DATE% %TIME%] launching python... >> "%TEMP%\preview-debug.log"
"C:\Users\jeroe\AppData\Local\Programs\Python\Python313\python.exe" -m http.server 8765 >> "%TEMP%\preview-debug.log" 2>&1

Steps:

  1. Save the two files above.
  2. Call mcp__Claude_Preview__preview_start with name: "ops-hub".
  3. Wait 5 seconds.
  4. Check for %TEMP%\preview-debug.log. It does not exist.
  5. Run tasklist /FI "IMAGENAME eq cmd.exe" and tasklist /FI "IMAGENAME eq python.exe". Neither shows the spawned process.
  6. Run netstat -ano | grep "LISTENING.*876[5-9]". Nothing listening.
  7. Call mcp__Claude_Preview__preview_eval — returns chrome-error://chromewebdata/ or an Awaiting server… placeholder.

Expected

Either:

  • The configured runtimeExecutable is actually invoked (the .bat would create the debug log, then python would bind 8765), or
  • preview_start returns an error explaining what failed.

Actual

preview_start returns success. The configured command is never spawned. No log file. No process. No port. preview_logs returns "No logs yet." indefinitely.

What I tried (all behaved the same — silent failure)

runtimeExecutableruntimeArgscwd setResult
python["-m", "http.server", "8765"]yesspawns Microsoft Store stub (zombie process, no port)
python["-m", "http.server", "8765"]nospawns Microsoft Store stub (zombie process, no port)
python3["-m", "http.server", "8765"]yessame as above
cmd.exe["/c", "python", "-m", "http.server", "8765"]yescmd starts but python never binds
py["-3", "-m", "http.server", "8765"]yesnothing spawned
Absolute path to real Python (C:/.../python.exe, forward slashes)["-m", "http.server", "8765"]yesnothing spawned
Absolute path (double backslashes)sameyesnothing spawned
Absolute path to real Pythonsameomittednothing spawned
.claude\preview.bat (proves whether the spawn happens at all)[]yes.bat never executed; no debug log created

Manual verification that real Python works fine when spawned by anything else:

  • Direct from PowerShell: python -m http.server 8770 → binds, serves files. ✓
  • Via Bash background tool: python -m http.server 8770 → binds, serves files. ✓
  • Via PowerShell Start-Process with the same args Preview is configured with → binds successfully. ✓

So the binary works in every spawning context except Claude Preview's own spawner.

Impact

In a session that depended on iterating UI changes with the preview_* family of tools (snapshot / screenshot / eval / console_logs), I had to fall back entirely to "edit, push, ask the user to look" — costing both time and credits across many turns of trial-and-error. Eventually I gave up trying to use the tool.

Suggested fix priorities

  1. Surface the spawn failure instead of returning Server started successfully. Even a generic "spawned process exited immediately" or "no process created" would have saved hours.
  2. Investigate why the Windows spawn path silently no-ops with the configurations above. Likely a process-creation flag or working-directory-with-spaces issue.
  3. Make preview_logs show spawn-side errors, not just stdout/stderr from the (never-started) child.

Happy to provide any further trace data on request.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

No response

Claude Code Version

Claude 1.5354.0 (9a9e3d) 2026-04-29T01:14:34.000Z

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

No response

extent analysis

TL;DR

The issue can be addressed by modifying the mcp__Claude_Preview__preview_start function to properly handle the spawning of the configured command, potentially by investigating process-creation flags or working-directory issues.

Guidance

  1. Investigate spawn failure: Modify mcp__Claude_Preview__preview_start to surface spawn failures instead of returning a success message.
  2. Check working directory: Verify that the working directory specified in the cwd field of .claude/launch.json exists and is correctly formatted.
  3. Process creation flags: Research potential process-creation flags that may be causing the silent failure of the spawn operation.
  4. Verify Python executable: Ensure that the Python executable specified in the runtimeExecutable field is correctly installed and accessible.

Example

No code example is provided as the issue is related to the internal workings of the mcp__Claude_Preview__preview_start function and requires modification of the underlying codebase.

Notes

The issue seems to be specific to the Windows 11 environment and the Claude Code Desktop client. Further investigation into the differences between the spawn operation in Claude Preview and other spawning contexts (e.g., PowerShell, Bash) may be necessary.

Recommendation

Apply a workaround by modifying the mcp__Claude_Preview__preview_start function to surface spawn failures, allowing for easier debugging and identification of the root cause.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix mcp__Claude_Preview__preview_start reports success but never spawns the configured command (Windows 11) [1 comments, 2 participants]