Claude Code Says 'All Tests Pass' but CI Goes Red — Designing Around Exit Code Pitfalls
Locally, Claude Code reports 'all tests pass.' You push it, and GitHub Actions turns red within minutes. The root cause is usually not Claude Code itself but how the shell and the test runner interpret exit codes. Here is a practical, experience-backed walkthrough.
Why Claude Code's WebFetch Returns 403 or Empty Pages — and How to Fix It
When Claude Code's WebFetch returns a 403, or a 200 OK with the body mysteriously empty, there are really only four root causes worth checking. This walkthrough breaks them down — Cloudflare bot protection, client-side rendering, the allowed-domains gate, and stale caches — with the practical responses I use in production.
Why Your `cd` and `export` Vanish Between Claude Code Bash Calls
Claude Code's Bash tool runs each call in a fresh shell, so cd and export never persist. Here's the symptom, the cause, and five practical patterns I use across my Dolice Labs pipelines.
Claude SDK Tool Calls Failing with InputValidationError: How to Handle Deferred Tools
When Claude Code SDK or Cowork tools throw InputValidationError, the root cause is usually deferred tool schemas. This guide explains why it happens and how to fix it with ToolSearch.
Debugging Claude API Tool Use Schema Errors: 3 Patterns I've Hit and How to Fix Them
A practical guide to diagnosing Claude API Tool Use errors—from schema definition mistakes to invalid_tool_use blocks and Claude ignoring your tools entirely. Based on real implementation experience.
git clone Fails in Cowork Scheduled Tasks — Diagnosing /tmp Permission Errors and Disk Space Issues
When git clone fails with Permission denied or No space left on device in Cowork automated tasks, the root cause is often /tmp directory ownership or disk exhaustion. Learn how to diagnose both and apply a $HOME fallback pattern for reliable automation.
Claude Code Doesn't Recognize nvm/pyenv/asdf — Shell Initialization and 4 Fixes
Fix 'node: command not found' and Python version mismatches in Claude Code when using nvm, pyenv, or asdf. Learn why shell initialization is skipped and how to solve it for good.
Claude Payment Errors and Card Declines: A Complete Troubleshooting Guide
Credit card declined when subscribing to Claude Pro? This guide covers all seven causes — 3D Secure failures, international payment blocks, VPN interference, prepaid card issues — with step-by-step fixes for each.
Claude Code Bash Tool Hangs on `npm run dev` and `docker run` — How to Handle Long-Running Processes
Claude Code's Bash tool freezes when running npm run dev, docker run, or other long-running processes. Learn background execution patterns, timeout strategies, and process management best practices.
Accidentally Committed API Keys to Git — Emergency Response with Claude Code
Step-by-step emergency guide for when you accidentally commit .env API keys to git. Covers immediate key rotation, removing secrets from git history with Claude Code, and preventing it from happening again.
Claude Code MCP Server Won't Start — How to Fix "spawn npx ENOENT" and PATH Issues
You configured an MCP server in Claude Code's settings.json, but it never starts — just "spawn npx ENOENT" or "spawn uvx ENOENT" errors. The culprit is a PATH mismatch between your shell and Claude Code's spawning environment. Here's how to diagnose and fix it.
When Claude Code's Read Tool Silently Truncates Large Files — offset/limit Patterns and When to Reach for Bash
Lessons from running an indie app business since 2014: how Claude Code's Read tool quietly cuts off after 2000 lines, the three signs of truncation, and when to use offset/limit versus bash.