CLAUDE LABJP
MCP — Support for the 2026-07-28 spec is rolling out across Claude. The protocol moves from bidirectional and stateful to request/response, so MCP servers can now live on serverless and edge infrastructureEXTENSIONS — Three official extensions have landed: MCP Apps for server-rendered UI, Tasks for async and long-running work, and Enterprise Managed Auth for IdP-based org-wide provisioningADOPTION — MCP passed 400 million monthly SDK downloads, roughly 4x growth this year, settling into its role as the standard way to connect agents to applicationsQUOTA — Today, August 19, is the last day of the 50 percent weekly usage boost for Claude Code subscribers. If you have long agent runs queued, this is the windowPRICING — Claude Sonnet 5's introductory rate of $2 per million input tokens and $10 output ends August 31; standard pricing of $3 and $15 takes over on September 1, twelve days outFIX — A bug where MCP v2 connections endlessly reopened subscriptions against servers with fixed timeouts is resolved, and a forward_user_identity setting was added for user attributionMCP — Support for the 2026-07-28 spec is rolling out across Claude. The protocol moves from bidirectional and stateful to request/response, so MCP servers can now live on serverless and edge infrastructureEXTENSIONS — Three official extensions have landed: MCP Apps for server-rendered UI, Tasks for async and long-running work, and Enterprise Managed Auth for IdP-based org-wide provisioningADOPTION — MCP passed 400 million monthly SDK downloads, roughly 4x growth this year, settling into its role as the standard way to connect agents to applicationsQUOTA — Today, August 19, is the last day of the 50 percent weekly usage boost for Claude Code subscribers. If you have long agent runs queued, this is the windowPRICING — Claude Sonnet 5's introductory rate of $2 per million input tokens and $10 output ends August 31; standard pricing of $3 and $15 takes over on September 1, twelve days outFIX — A bug where MCP v2 connections endlessly reopened subscriptions against servers with fixed timeouts is resolved, and a forward_user_identity setting was added for user attribution
Articles/Cowork
Cowork/2026-05-04Advanced

Why Cowork Scheduled Tasks Stop Mid-Run and How to Recover

Diagnose Cowork scheduled task failures using measured exit codes and real error output — why safe.directory delays failure instead of fixing it, how to pick a writable root before cloning, and how to structure logs with reason codes.

cowork13scheduled-task2automation101troubleshooting87skill2

Premium Article

You set up an automation, and one morning you notice it stopped somewhere in the middle. If you have run Cowork scheduled tasks for any length of time, you know the feeling — and the harder part is that you often cannot tell why it stopped.

I run article generation tasks across several sites as a solo developer, and over time a few clear patterns emerged. Here is how I organize them.

The second half of this article is not a tidy summary of theory. On the very day I wrote it, a scheduled run hit a working repository that had been left owned by another user and could not be written to. The exit codes and error strings below are the ones I captured in that session.

Why Scheduled Tasks "Disappear" Silently

The awkward part about scheduled tasks is that a failure does not always announce itself. A manual run shows you the problem on screen immediately. A scheduled run happens in the background, so a mid-run exit can go unnoticed for days.

The causes fall into three broad patterns.

Permission dialog lockups are the most common. Cowork scheduled tasks run when nobody is at the keyboard, so any confirmation dialog leaves the run waiting for an answer that never comes. AskUserQuestion, the Read / Write / Edit file tools, and request_cowork_directory all trigger dialogs. Use them in a scheduled context and the run stalls with nobody there to click "Allow."

Disk exhaustion (ENOSPC) shows up regularly in real operation. Anything that runs Claude Code or git clone on a schedule gradually eats /tmp. If npm package installation is in the loop, a single run can consume hundreds of megabytes.

Git lock conflicts happen when a previous run ended halfway. A leftover .git/index.lock makes the next run fail with fatal: Unable to create ... .git/index.lock.

These three are the manageable kind, because they surface as errors. The genuinely hard ones are the failures that produce no error at all and simply pretend to succeed. Those come later in the article.

Diagnosis: Identifying Which Pattern Hit You

Start with the run log. Cowork keeps a session log for scheduled tasks, so read the last message it emitted.

# Free space in /tmp (the ENOSPC signal)
df /tmp --output=avail -m | tail -1
 
# Leftover git lock files
find /tmp/repos -name "*.lock" 2>/dev/null
 
# Who owns the working root — and who are we?
stat -c '%U:%G %a %n' /tmp/repos/* 2>/dev/null
id -u

If the last log line lands right after an AskUserQuestion call or a Read tool invocation, it is a permission dialog. If you see ENOSPC or No space left on device, it is disk. If you see index.lock or fatal: Unable to create, it is a lock conflict.

The stat and id -u pairing at the end is deliberate. The uid your task runs as is not guaranteed to be stable, and a directory left behind by a previous process under a different user will fail every write from that point onward. The next section shows how nastily that surfaces.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Measured proof that safe.directory leaves git status at exit 0 while fetch alone fails with exit 255 — reads pass, so the failure surfaces minutes later than it should
A preflight that settles on a writable root before cloning (uid 65534 detection, $HOME fallback, free-space threshold), sized from measured numbers: 41MB per clone, 2.8s, 2,990MB free
Reason-coded structured logs and aggregation one-liners that tell you in seconds which morning things actually broke
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Cowork2026-07-17
It Worked on My Machine, but Nobody Could Trigger It — Four Assumptions I Stripped Out of a Cowork Plugin
I bundled four working automation skills into a plugin and shared it. Only one of them ever fired. Here is how I measured skill trigger rate, and the four assumptions — vocabulary, paths, connections, and naming — I had to strip out before it was portable.
Cowork2026-06-27
Logged as success, but it produced nothing — stopping silent failures in Cowork scheduled tasks with end-of-run assertions
A Cowork scheduled task exits 0, yet not a single artifact was produced. Trusting the exit code alone hides this silent failure. Here is how to turn your definition of done into end-of-run assertions that fail loudly with an evidence log.
Cowork2026-07-05
When Claude Declines a Request on Safety Grounds, What Should an Unattended Pipeline Return?
A third kind of ending that is neither an error nor a normal completion — a safety decline. Here is how to fold it into a pipeline you run unattended, with a classifier and a review-queue design drawn from indie development.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →