2.1.9 breaks SDK subprocess initialization - 'Control request timeout: initialize'
Resolved 💬 3 comments Opened Jan 16, 2026 by banddude Closed Jan 20, 2026
Environment
- claude-agent-sdk version: 0.1.18
- Claude Code CLI version: 2.1.9 (broken), 2.1.7 (works)
- Python: 3.10.13
- OS: macOS (Darwin)
- Auth: CLAUDE_CODE_OAUTH_TOKEN (subscription-based)
Summary
Upgrading from Claude Code 2.1.7 to 2.1.9 breaks the Python SDK's ability to initialize the subprocess. Downgrading to 2.1.7 immediately fixes the issue.
Timeline
- Jan 15, 2026 at 18:18 - Claude Code auto-updated to 2.1.9
- Jan 15, 2026 at 18:20 - SDK connections started failing with "Control request timeout: initialize"
- Jan 16, 2026 at 12:05 - Downgraded to 2.1.7, SDK works again immediately
Symptoms
await client.connect()times out after 60s with "Control request timeout: initialize"- Zombie processes accumulate:
claude --output-format stream-json --verbose ...(60-70% CPU each) - CLI works perfectly when called directly:
echo "hi" | claude --print --model opus - After killing zombie processes and downgrading to 2.1.7, everything works
Reproduction
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions
import asyncio
async def test():
options = ClaudeAgentOptions(
cwd="/path/to/dir",
permission_mode="bypassPermissions"
)
client = ClaudeSDKClient(options=options)
await client.connect() # Times out on 2.1.9, works on 2.1.7
asyncio.run(test())
Workaround
Downgrade to 2.1.7:
ln -sf ~/.local/share/claude/versions/2.1.7 ~/.local/bin/claude
Related
- Similar report: https://github.com/AndyMik90/Auto-Claude/issues/451 (Dec 31, 2025)
- Jan 15 outage: "Compaction is having issues" may be related
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗