◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Cowork
◈ Cowork/2026-05-04上級

Cowork スケジュールタスクが黙って止まる理由と、自動で立ち直る仕組みの作り方

Coworkのスケジュールタスクが黙って止まる原因を、実測した終了コードとエラー文で切り分けます。safe.directory が失敗を遅らせる仕組み、書ける場所を先に決めるプリフライト、理由コード付きログまで扱います。

cowork16scheduled-taskautomation55troubleshooting61skill

✦ プレミアム記事

自動化を設定したはずのスケジュールタスクが、気づくと途中で止まっている——そんな経験はないでしょうか。Cowork でスケジュールタスクを本格的に運用し始めると、最初のうちは「なぜ止まったのかわからない」という状況によく遭遇します。

私自身、個人開発で複数のサイトを抱え、毎晩いくつもの定期実行タスクを走らせてきました。その中で掴んだパターンを、順番に書き残します。

この記事の後半で扱う内容は、机上の整理ではありません。この記事を書いている当日の実行でも、作業用リポジトリが他ユーザー所有になっていて書き込めないという障害に実際にぶつかりました。そのとき手元で取った終了コードとエラー文をそのまま載せています。

なぜスケジュールタスクは「黙って止まる」のか

スケジュールタスクのやっかいなところは、失敗しても通知が来ない場合があることです。手動実行なら画面で即座に確認できますが、スケジュール実行ではバックグラウンドで処理が走っているため、気づかないうちに途中終了しているケースがあります。

原因を大きく分けると3つのパターンに収まります。

許可ダイアログの表示による停止が最も頻繁に起きます。Cowork のスケジュールタスクは、ユーザーが操作していないタイミングで実行されるため、確認ダイアログが出ると応答待ちのまま固まってしまいます。AskUserQuestion ツールや Read / Write / Edit ファイルツール、request_cowork_directory などが許可ダイアログをトリガーします。スケジュール実行のコンテキストでこれらを使うと、誰も「はい」を押せないまま処理が止まります。

ディスク不足(ENOSPC)による停止も実運用でよく遭遇します。Claude Code や git clone を含む処理を定期実行していると、/tmp 領域が徐々に消費されます。特に npm パッケージのインストールが含まれていると、一度の実行で数百 MB が消費されることもあります。

git 操作のロック競合も起きることがあります。前回の実行が中途半端に終わった場合、.git/index.lock ファイルが残って次回の実行時に fatal: Unable to create ... .git/index.lock エラーになるケースです。

この3つは、いずれもエラーとして表に出るぶん、まだ扱いやすい部類です。本当に手強いのは、エラーを出さずに成功したふりをして終わる失敗でした。それは記事の後半で扱います。

診断: どのパターンで止まったかを特定する

まず実行ログを確認します。Cowork のスケジュールタスクにはセッションログが残るので、最後に出力されたメッセージを確認してください。

# /tmp のディスク残量を確認(ENOSPC の判断基準)
df /tmp --output=avail -m | tail -1
 
# git ロックファイルの有無を確認
find /tmp/repos -name "*.lock" 2>/dev/null
 
# 作業ルートの所有者を確認(自分の uid と一致するか)
stat -c '%U:%G %a %n' /tmp/repos/* 2>/dev/null
id -u

ログの最終行が AskUserQuestion 呼び出しや Read ツールの実行直後であれば、許可ダイアログ問題です。ENOSPC や No space left on device が含まれていれば、ディスク不足です。index.lock や fatal: Unable to create があれば、git ロック競合です。

最後の stat と id -u を並べているのには理由があります。実行ユーザーの uid は毎回同じとは限らず、前回のプロセスが別ユーザーで作ったディレクトリが残っていると、そこから先の書き込みが全て失敗するためです。次のセクションで、この所有者ずれが厄介な形で表面化する様子を見ていきます。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦safe.directory を足すと git status は exit 0 のまま fetch だけが exit 255 で落ちる — 読み取りが通るせいで発覚が数分遅れる仕組みを、実測ログで示します
✦書ける場所を先に確定させるプリフライト実装(uid 65534 の検知・$HOME フォールバック・残量閾値)を、clone 41MB / 2.8秒・空き 2,990MB の実測から設計します
✦理由コード付きの構造化ログを EXIT トラップに括り付けます — bash 5.1.16 の実測で、TERM ハンドラが exit しないと打ち切られた実行が SUCCESS と書き残すことまで確認しました
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ Cowork2026-08-23
コネクタが使えない朝に、待つのか人に返すのかを分ける三つの状態
無人実行でコネクタに届かないとき、原因は起動途中・未認証・恒久欠落の三つに分かれます。それぞれ正しい対処が正反対になる理由と、待機予算を切り分ける判定器の実装をまとめました。
◈ Cowork2026-10-08
毎回読ませる指示ファイルを半分にした夜、削る前に3つの引き出しへ分けました
指示ファイルが長くなるほど、書いたはずの決まりごとが守られなくなります。毎回読ませる分を半分にするため、残す・移す・捨てるの3つに分けた基準と、見出しごとの大きさを測る小さなスクリプトをまとめます。
◈ Cowork2026-09-08
毒入りサンプルを置くまで、無人の検査は一度も落ちていませんでした
無人スケジュールで回している検査が、ログ整形のパイプ一本で終了コードを失っていました。消える経路を手元で測って切り分け、検査自身を検査する小さなハーネスまで組みます。