When Claude Code's Sequential Edits Cascade into Failure — Fixing 'old_string not found' and 'not unique' on the Same File
Run several Edits against the same file in one turn and the second or third one suddenly fails with 'not found' or 'not unique'. The cause is order-dependence inside a single context snapshot, and a Read + scoped patches usually rescue it.
When pip install Stops with externally-managed-environment in Cowork's Bash Sandbox — Three Patterns for PEP 668
Why pip install fails with externally-managed-environment in Cowork's Bash sandbox, and three practical fixes — --break-system-packages, venv, and pipx — written from real scheduled-task experience.
Designing a Model-Selection Fallback That Survives this model is currently unavailable on Claude API
The 'this model is currently unavailable' error from Claude API behaves nothing like a 529 Overloaded or a rate limit. After six months running it across six auto-publishing pipelines as an indie developer at Dolice, I'm sharing the failure conditions I observed and the per-request model-fallback implementation that ended my weekend firefighting.
Why Claude Code Breaks Your MDX Frontmatter With YAML Errors (and How to Fix It)
If you have ever let Claude Code mass-produce MDX articles, sooner or later your build dies with a cryptic YAML error. Nested double quotes, stray colons, comma-joined tag entries — here is what is actually happening and the five patterns I trust in production.
Claude Code Hook `command timed out`: Timeout Settings and Split-Execution Patterns That Actually Work
Fix Claude Code's `command timed out` hook failure without just bumping the timeout. Includes practical split-execution, detached background jobs, and a settings.json layout that keeps your session fast.
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 inside a Cowork VM, the cause is usually subdirectory ownership under /tmp. Here is how to detect it correctly, plus two real bugs hiding in the usual workaround code.
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.