Transcript writes are failing
会話履歴を保存できていない状態。ディスク空き容量と書き込み権限が主因。
エラー文字列
Transcript writes are failing
何が起きているか
会話の履歴(transcript)をファイルに書き込めていません。
⚠️ 作業自体は続けられますが、履歴が保存されていないため --resume で再開できません。 長い作業の途中でこれが出たまま放置すると、セッションを閉じた時点で内容が失われます。
原因は次のとおりです。
| 原因 | 状況 |
|---|---|
| ディスクの空き容量不足 | 最多。とくにCドライブが逼迫している環境 |
| 書き込み権限が無い | 別ユーザーで作ったディレクトリ、管理者権限で一度起動した |
| 同期ソフトによるロック | OneDrive / Dropbox / Google Drive がファイルを掴んでいる |
| ウイルス対策ソフトの干渉 | リアルタイムスキャンが書き込みをブロック |
| ディレクトリが無い/壊れている | 手動で消した、移行に失敗した |
⭐ Windows では「OneDrive がユーザーフォルダを同期している」構成が非常に多く、これが原因になりがちです。
直し方
1. ディスクの空きを確認する
Windows(PowerShell)
Get-PSDrive -PSProvider FileSystem |
Select-Object Name,
@{n='空きGB';e={[math]::Round($_.Free/1GB,1)}},
@{n='使用GB';e={[math]::Round($_.Used/1GB,1)}}
macOS / Linux
df -h ~
⚠️ 空きが数GBを切っていたら、それが原因です。 履歴以外にも様々な不具合が起きます。
2. 書き込めるか実際に試す
Windows(PowerShell)
$dir = "$env:USERPROFILE\.claude"
Test-Path $dir
try {
$t = Join-Path $dir "write-test.tmp"
"test" | Out-File -FilePath $t -Encoding utf8 -ErrorAction Stop
Remove-Item $t
"書き込み可"
} catch {
"書き込み不可: $($_.Exception.Message)"
}
macOS / Linux
ls -ld ~/.claude
touch ~/.claude/write-test.tmp && rm ~/.claude/write-test.tmp && echo "書き込み可"
3. 権限を直す
macOS / Linux
sudo chown -R "$(id -u):$(id -g)" ~/.claude
chmod -R u+rwX ~/.claude
⚠️ 一度 sudo で Claude Code を起動すると、作られたファイルの所有者が root になり、以後ずっと書き込めなくなります。 上のコマンドで所有者を戻してください。そして今後は sudo で起動しないでください。
Windows
管理者権限で一度起動した場合も同様の状態になりえます。エクスプローラーで %USERPROFILE%\.claude のプロパティ → セキュリティから、自分のアカウントに変更権限があるか確認してください。
4. ⭐ 同期ソフトの対象から外す(Windows で最も多い)
OneDrive がユーザーフォルダを同期している場合、.claude も同期対象になり、書き込み中にロックされることがあります。
まず、同期対象になっているか確認します。
"$env:USERPROFILE\.claude"
$env:OneDrive
.claude のパスが OneDrive 配下(例: C:\Users\you\OneDrive\...)になっているなら、それが原因です。
対処
- OneDrive の設定 →「フォルダーのバックアップを管理」から、該当フォルダの同期を止める
- OneDrive の「このデバイスで常に保持する」を設定して、オンデマンド化を解除する
⚠️ 「ファイルオンデマンド」でプレースホルダ化されていると、書き込みのたびにダウンロードが走り、失敗しやすくなります。
Dropbox や Google Drive でも同様です。開発関連のディレクトリは同期対象から外すのが定石です。
5. ウイルス対策ソフトを確認する
リアルタイムスキャンが書き込みをブロックしている場合、.claude ディレクトリを除外対象に追加すると解消します。
⚠️ 除外を追加するときは、対象を最小限にしてください。 ドライブ全体やホームディレクトリ全体を除外しないこと。
6. 保存が意図的に無効化されていないか確認する
次のメッセージが出ている場合は、故障ではなく設定です。
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set
環境変数を確認します。
env | grep CLAUDE_CODE_SKIP_PROMPT_HISTORY
Get-ChildItem Env: | Where-Object Name -match 'CLAUDE_CODE_SKIP_PROMPT_HISTORY'
有効にする場合は外してください。
unset CLAUDE_CODE_SKIP_PROMPT_HISTORY
なお Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker は、親から起動された子セッションの正常な動作です。対処は不要です。
再発防止
- ⭐ 開発関連のディレクトリをクラウド同期の対象にしない。
.claudeに限らず、node_modulesやビルド成果物も同じ理由で外すべきです sudoや管理者権限で Claude Code を起動しない。 一度やると後を引きます- ディスクの空きを月に一度は確認する。逼迫は静かに進行し、症状は分かりにくい形で出ます
- 長い作業の途中でこの警告を見たら、放置せずその場で対処する。閉じた時点で履歴は戻りません