[CRITICAL] Plugin-MCP Configuration Mismatch Causes Misleading 'Request Timed Out' Errors

Resolved 💬 12 comments Opened Jan 17, 2026 by jyongchul Closed Mar 1, 2026

Critical Issue Report: Persistent "Request Timed Out" Errors in Multi-Project Environment

Report Date: 2026-01-17
Severity: CRITICAL (Caused 1 week of complete workflow blockage)
Reporter: Server2Maintenance System Administrator
Claude Code Version: [Current CLI version]
Environment: WSL2 Ubuntu, 30+ concurrent Claude Code sessions

---

Issue Summary

Persistent "Request timed out. Check your internet connection and proxy settings" errors occurring across multiple projects, resulting in complete inability to use Claude Code for an extended period.

Symptoms

Error Messages

⎿Request timed out. Check your internet connection and proxy settings
 Retrying in 19 seconds… (attempt 10/10)
⎿API Error: Connection error.

Affected Operations

  • Tool Calls: Read, Write, Edit, TodoWrite
  • MCP Tool Calls: Playwright MCP navigation, browser automation
  • Hook Executions: PreToolUse/PostToolUse hooks
  • Frequency: 70-90% of all tool operations fail with timeout

Impact Metrics

  • Downtime: ~1 week of productivity loss
  • Projects Affected: 30+ concurrent projects
  • Retry Attempts: Consistently hitting max retries (10/10 attempts)
  • Success Rate: <10% tool call completion rate during incident

---

Root Cause Analysis (User-Discovered)

Primary Cause: Plugin-MCP Configuration Mismatch

Critical Design Issue: Claude Code's 2-tier architecture (Plugin vs MCP) creates a dangerous silent failure mode:

  1. User installs plugin via UI/CLI → Plugin appears "installed" ✅
  2. Plugin's MCP server is NOT enabled.claude.json not updated ❌
  3. Claude Code attempts to use MCP tools → Connection fails
  4. Retry loop → 10 attempts × 15-20 seconds each = 150-200 second delay
  5. Cascading failures → All subsequent tool calls timeout

Architecture Gap

Plugin Installation (UI/CLI)
    ↓
    ✅ Plugin registered (commands, agents, skills work)
    ❌ MCP NOT enabled (API tools silently broken)
    ↓
Claude Code attempts: mcp__plugin_playwright_playwright__browser_navigate
    ↓
MCP not in enabledMcpjsonServers array → Connection error
    ↓
"Request timed out" (misleading error message)

Why This Is Dangerous:

  • No warning during plugin installation
  • No error message indicating MCP configuration issue
  • Generic "timeout" error suggests network problem (red herring)
  • Silent failure mode - user cannot detect root cause

Secondary Cause: Multi-Project Config Race Condition

Observed Behavior: 30+ concurrent Claude Code sessions

  • Each session independently reads/modifies .claude.json
  • Last-write-wins → Random configuration loss
  • MCPs get disabled unexpectedly mid-session
  • No file locking or conflict resolution

---

User-Implemented Workaround

Fix Scripts (Created Out of Desperation)

1. Validation Script: /tmp/validate_all_plugin_mcps.py

# Checks if installed plugins have corresponding MCPs enabled
# Scans all projects in ~/.claude.json
# Reports mismatches

2. Auto-Fix Script: /tmp/fix_all_mcp_config.py

# Automatically enables all 13 Plugin MCPs:
# asana, context7, firebase, github, gitlab, greptile,
# laravel-boost, linear, playwright, serena, slack, stripe, supabase

3. Cleanup Script: /mnt/c/Server2Maintenance/cleanup_mcp_processes.sh

# Cleans up accumulated MCP server processes
# (Secondary issue: MCP servers never terminated by Claude Code)

Manual Recovery Process (Required Weekly)

  1. Run validation script
  2. If issues detected, run fix script
  3. Kill accumulated MCP processes
  4. Restart Claude Code sessions
  5. Cross fingers 🤞

---

Questions for Anthropic Team

Design Questions

  1. Why are Plugin-MCPs not auto-enabled?
  • Is there a technical reason plugin installation doesn't update enabledMcpjsonServers?
  • Can this be automated in a future update?
  1. Why is the error message misleading?
  • "Check your internet connection" when the actual issue is local configuration
  • Can error messages distinguish between network timeouts vs MCP configuration errors?
  1. Is the 2-tier architecture documented?
  • Plugin vs MCP distinction is not clear in user documentation
  • Are users expected to manually manage enabledMcpjsonServers?

Multi-Project Environment

  1. How should .claude.json be managed with 30+ sessions?
  • Is file locking implemented?
  • Should we use separate config files per project?
  • Is there a recommended max concurrent session count?
  1. Is there a config validation API?
  • Can Claude Code validate configuration on startup?
  • Can it warn users about missing MCP configurations?

MCP Server Lifecycle

  1. Why do MCP server processes accumulate?
  • Are MCP servers supposed to be cleaned up automatically?
  • Is there a lifecycle management bug?
  • Observed: 29+ MCP processes after 1 hour (7GB memory consumption)

---

Reproduction Steps

Setup

  1. Fresh Claude Code installation
  2. Install any plugin with MCP (e.g., Playwright, GitHub, Greptile)
  3. Do NOT manually add to enabledMcpjsonServers (this is the trap)

Trigger

  1. Start Claude Code session
  2. Attempt to use any MCP tool from the installed plugin
  3. Example: mcp__plugin_playwright_playwright__browser_navigate

Expected Behavior

  • Tool call succeeds OR
  • Clear error: "Plugin 'playwright' MCP not enabled. Add to .claude.json enabledMcpjsonServers."

Actual Behavior

⎿Request timed out. Check your internet connection and proxy settings
 Retrying in 19 seconds… (attempt 1/10)
 Retrying in 19 seconds… (attempt 2/10)
 ...
 Retrying in 19 seconds… (attempt 10/10)
⎿API Error: Connection error.

---

Impact Assessment

Business Impact

  • Productivity Loss: 1 week × 8 hours/day × $X/hour
  • Projects Delayed: 30+ client projects blocked
  • Customer Confidence: Severely impacted by missed deadlines

Developer Experience

  • Confusion: Spent days debugging network, proxies, firewalls (all red herrings)
  • Trust Erosion: Tool appears broken, unreliable
  • Workaround Complexity: Required custom Python scripts to maintain usability

Operational Burden

  • Weekly Maintenance: Must run validation/fix scripts regularly
  • Process Monitoring: Manual MCP process cleanup required
  • Documentation Overhead: Created 100+ page troubleshooting guide

---

Requested Actions from Anthropic

Short-Term (Immediate)

  1. Update Documentation
  • Clearly explain Plugin vs MCP distinction
  • Document manual enabledMcpjsonServers requirement
  • Add troubleshooting guide for timeout errors
  1. Improve Error Messages
  • Distinguish MCP config errors from network timeouts
  • Provide actionable error messages (e.g., "Enable MCP in .claude.json")

Medium-Term (Next Release)

  1. Auto-Enable MCPs on Plugin Install
  • When plugin is installed, automatically add to enabledMcpjsonServers
  • Prompt user for confirmation if needed
  • Prevent silent misconfiguration
  1. Configuration Validation
  • Add claude config validate command
  • Warn on startup if installed plugins have disabled MCPs
  • Provide fix suggestions
  1. Multi-Project Support
  • Implement file locking for .claude.json
  • Detect config conflicts and warn users
  • Consider per-project config files

Long-Term (Architecture)

  1. Unified Plugin-MCP Model
  • Eliminate 2-tier confusion
  • One installation process enables everything
  • Deprecate manual MCP configuration
  1. MCP Lifecycle Management
  • Auto-cleanup MCP server processes
  • Implement proper process termination
  • Resource leak detection and prevention

---

System Information

Environment

OS: WSL2 Ubuntu (Kernel 6.6.87.2-microsoft-standard-WSL2)
Claude Code: [Version]
Node: [Version]
Python: 3.12
Concurrent Sessions: 30+

Installed Plugins (All Required Manual MCP Enable)

  • asana
  • context7
  • firebase
  • github
  • gitlab
  • greptile
  • laravel-boost
  • linear
  • playwright
  • serena
  • slack
  • stripe
  • supabase

MCP Servers (Manual Configuration)

  • chrome-devtools (Manual MCP)
  • All 13 Plugin-provided MCPs (listed above)

---

Supporting Documentation

  • Complete Diagnosis: /mnt/c/Server2Maintenance/MCP_CONFIGURATION_FIX_COMPLETE.md
  • Auto-Fix Implementation: /tmp/fix_all_mcp_config.py
  • Validation Tool: /tmp/validate_all_plugin_mcps.py
  • Troubleshooting Guide: /mnt/c/Server2Maintenance/CLAUDE.md (Section: "Request Timed Out" Auto-Troubleshooting)

---

Conclusion

This issue represents a critical gap in Claude Code's usability for professional, multi-project development environments. The 2-tier Plugin-MCP architecture creates a silent failure mode that is:

  1. Difficult to diagnose (misleading error messages)
  2. Not documented (users unaware of manual MCP enablement)
  3. Catastrophic in impact (complete workflow blockage)

The user community would greatly benefit from:

  • Automatic MCP enablement on plugin installation
  • Better error messages distinguishing config from network issues
  • Built-in validation tools

Urgency: HIGH - This issue will affect any user running multi-project setups or using plugin-provided MCPs.

---

Contact: jyongchul@gmail.com
System Logs Available: Yes (can provide upon request)
Willing to Test Fixes: Yes

View original on GitHub ↗

This issue has 12 comments on GitHub. Read the full discussion on GitHub ↗