Playwright MCP sidecar: liveness/readiness probe failures on port 8086 #42

Closed
opened 2026-02-22 20:42:16 +00:00 by cpfarhood · 2 comments
cpfarhood commented 2026-02-22 20:42:16 +00:00 (Migrated from github.com)

Summary

Chart v0.4.2 fixed the --transport argument issue, but now the playwright MCP sidecar fails liveness and readiness probes.

Issue Details

Container Status

  • Container starts successfully (no more --transport error)
  • Liveness probe fails: dial tcp 172.18.1.25:8086: connect: connection refused
  • Readiness probe fails: dial tcp 172.18.1.25:8086: connect: connection refused
  • Container gets stuck in CrashLoopBackOff due to probe failures

Container Output (Successful)

The playwright container outputs this on startup, indicating it's working:

{
  "protocol": "2024-11-05",
  "serverInfo": {
    "name": "playwright",
    "version": "0.7.1"
  },
  "capabilities": {
    "prompts": {},
    "resources": {},
    "tools": {
      "listChanged": true
    }
  },
  "instructions": "I am a Playwright MCP server that can help you with web automation tasks. Available tools: screenshot, click, fill, keyboard_type, wait_for_selector, get_text, get_attribute, evaluate_js, navigate_to, go_back, go_forward, reload, set_viewport_size, close_page. When using tools, remember to take a screenshot first to see the current page state.",
  "meta": {
    "url": "http://localhost:8086/mcp"
  }
}
For legacy SSE transport support, you can use the /sse endpoint instead.

Probe Configuration Issue

The container binds to port 8086 and outputs "url": "http://localhost:8086/mcp", but the Kubernetes probes can't connect to it.

Possible causes:

  1. Service only binding to 127.0.0.1 instead of 0.0.0.0
  2. Probe configuration expecting HTTP health check instead of TCP
  3. Service takes time to start after container initialization

Events Log

Warning  Unhealthy  8m17s (x7 over 9m37s)   kubelet  spec.containers{playwright-mcp}: Liveness probe failed: dial tcp 172.18.1.25:8086: connect: connection refused
Warning  Unhealthy  8m16s (x18 over 9m44s)  kubelet  spec.containers{playwright-mcp}: Readiness probe failed: dial tcp 172.18.1.25:8086: connect: connection refused
Warning  BackOff    4m38s (x8 over 5m57s)   kubelet  spec.containers{playwright-mcp}: Back-off restarting failed container

Progress

  • v0.4.1: Still had --transport error
  • v0.4.2: Fixed --transport error, container starts successfully
  • v0.4.2: Probe failures prevent deployment

Expected Behavior

Playwright MCP sidecar should pass health checks and remain in Running state.

Related

  • #40 (original MCP sidecar image issues)
  • #41 (--transport flag issue - partially resolved)
## Summary Chart v0.4.2 fixed the `--transport` argument issue, but now the playwright MCP sidecar fails liveness and readiness probes. ## Issue Details ### Container Status - ✅ Container starts successfully (no more `--transport` error) - ❌ Liveness probe fails: `dial tcp 172.18.1.25:8086: connect: connection refused` - ❌ Readiness probe fails: `dial tcp 172.18.1.25:8086: connect: connection refused` - Container gets stuck in `CrashLoopBackOff` due to probe failures ### Container Output (Successful) The playwright container outputs this on startup, indicating it's working: ```json { "protocol": "2024-11-05", "serverInfo": { "name": "playwright", "version": "0.7.1" }, "capabilities": { "prompts": {}, "resources": {}, "tools": { "listChanged": true } }, "instructions": "I am a Playwright MCP server that can help you with web automation tasks. Available tools: screenshot, click, fill, keyboard_type, wait_for_selector, get_text, get_attribute, evaluate_js, navigate_to, go_back, go_forward, reload, set_viewport_size, close_page. When using tools, remember to take a screenshot first to see the current page state.", "meta": { "url": "http://localhost:8086/mcp" } } For legacy SSE transport support, you can use the /sse endpoint instead. ``` ### Probe Configuration Issue The container binds to port 8086 and outputs `"url": "http://localhost:8086/mcp"`, but the Kubernetes probes can't connect to it. Possible causes: 1. Service only binding to `127.0.0.1` instead of `0.0.0.0` 2. Probe configuration expecting HTTP health check instead of TCP 3. Service takes time to start after container initialization ### Events Log ``` Warning Unhealthy 8m17s (x7 over 9m37s) kubelet spec.containers{playwright-mcp}: Liveness probe failed: dial tcp 172.18.1.25:8086: connect: connection refused Warning Unhealthy 8m16s (x18 over 9m44s) kubelet spec.containers{playwright-mcp}: Readiness probe failed: dial tcp 172.18.1.25:8086: connect: connection refused Warning BackOff 4m38s (x8 over 5m57s) kubelet spec.containers{playwright-mcp}: Back-off restarting failed container ``` ## Progress - ✅ v0.4.1: Still had `--transport` error - ✅ v0.4.2: Fixed `--transport` error, container starts successfully - ❌ v0.4.2: Probe failures prevent deployment ## Expected Behavior Playwright MCP sidecar should pass health checks and remain in `Running` state. ## Related - #40 (original MCP sidecar image issues) - #41 (--transport flag issue - partially resolved)
cpfarhood commented 2026-02-22 20:43:41 +00:00 (Migrated from github.com)

Fixed in v0.4.3. The Playwright MCP server binds to 127.0.0.1 by default, making it unreachable by kubelet probes. Added --host 0.0.0.0 to bind to all interfaces.

Fixed in v0.4.3. The Playwright MCP server binds to `127.0.0.1` by default, making it unreachable by kubelet probes. Added `--host 0.0.0.0` to bind to all interfaces.
cpfarhood commented 2026-02-22 20:56:57 +00:00 (Migrated from github.com)

Fixed in v0.4.3!

The playwright MCP sidecar is now working perfectly:

  • HelmRelease: Ready with chart devcontainer@0.4.3
  • Pod status: 6/6 Running (all containers including playwright)
  • All containers show Ready: True

The bind to 0.0.0.0 fix resolved the probe connectivity issue. Thanks for the quick turnaround!

✅ **Fixed in v0.4.3!** The playwright MCP sidecar is now working perfectly: - HelmRelease: `Ready` with chart `devcontainer@0.4.3` - Pod status: `6/6 Running` (all containers including playwright) - All containers show `Ready: True` The bind to 0.0.0.0 fix resolved the probe connectivity issue. Thanks for the quick turnaround!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: farhoodlabs/devcontainer#42