Decoding Claude's 'Spanner Temporarily Unavailable' Error and How to Handle It
The 'Spanner temporarily unavailable' error occasionally appears in Claude API and Claude.ai responses. This guide unpacks what the message reveals about Anthropic's infrastructure and walks through practical retry strategies that production teams actually use.
Claude API Streaming Stops Mid-Response: Diagnosing and Fixing the 5 Root Causes
When Claude API streaming stops unexpectedly, there are exactly 5 root causes. Learn to diagnose which one you're hitting and apply the right fix — from timeout tuning to stop_reason logging.
When Claude Code Hooks Loop Forever — Stopping Self-Triggering PostToolUse Hooks
You wired up Claude Code hooks and now your terminal is a waterfall of tool calls that won't stop. Here's why PostToolUse hooks loop on themselves, and the patterns I use in real projects to make sure they never do again.
When Extended Thinking 'Does Not Work': 7 Causes That Hide Behind the Same Symptom
When you turn on Extended Thinking but the response feels identical to before, the cause is usually one of seven distinct problems. This guide walks through how to diagnose each from the API, the chat UI, the SDK, and the model layer.
When Claude Code Hits `index.lock` in VMs and CI: Three Workarounds That Actually Stick
When Claude Code freezes on `fatal: Unable to create '.git/index.lock'` inside a VM, container, or CI sandbox, here are three battle-tested workarounds — pick the one that matches the layer of failure you're actually hitting.
When Claude Projects Won't Read Your Files — Catch the Cause Before You Upload
Your PDF is in the project, but Claude keeps saying it has no information. No error, just silence. Here's how to place the cause in one of three layers — index, file, or instructions — and a script that diagnoses the file layer before you upload.
Why Your Custom MCP Server's Logs Disappear — Writing to stderr in Claude Code
If you're building your own MCP server and your console.log lines never appear — while Claude Code silently reports the tool as unresponsive — you're probably polluting stdio. Here's how to spot it and rewrite your logs to keep the protocol intact.
Diagnosing Claude Code Subagents That Stall or Never Return
Diagnostic flow for Claude Code subagents that freeze, return silently, or produce the wrong output shape — classified by symptom with runnable examples.
The Claude Code Error Handbook — Auth, Billing, Stalls, Tools & MCP, Diagnosed by Symptom
A field-tested reference for 40+ Claude Code error patterns, organized by visible symptom: authentication, billing, response stalls, tool failures, MCP connectivity, and hook issues. Each entry tells you where to look and what to change.
Claude Keeps Saying 'Response Incomplete' — A Layered Troubleshooting Guide
Diagnose why Claude or Claude Code freezes with a 'Response incomplete' or 'Try stopping' message. Walk through the four layers where generation can stall and recover the session without losing context.
Three Minutes with /doctor: Catching Claude Code Config Drift Before It Costs You an Hour
When Claude Code acts up, the first thing to run is /doctor. It shows merged settings, MCP server status, and permission mode at a glance.
When Claude Says 'Failed to Send Message' — A Practical Triage and Recovery Guide
Why Claude shows 'Failed to send message' — broken down into five real causes, with a quick triage order and practical fixes for each.