⚙️ Vault運用

トラブルシューティング

最終更新 2026年05月07日 / 90_Meta/トラブルシューティング.md

トラブルシューティング


30秒で全体像

観点 一言
核心 自動化システムでエラーが起きた時の対処法。
キーワード 通知システム / よくあるエラーと対処 / ヘルスチェックコマンド
使う人 全社員 / 運用担当
読了目安 5-7分

自動化システムでエラーが起きた時の対処法。

通知システム

エラーが起きたら以下に届きます:

  1. macOS通知センター(即時、画面右上)
  2. Slack #scale-ai-all チャンネル(履歴として残る、エラー時のみ)
  3. ~/Obsidian/logs/notifications.log(全履歴)

よくあるエラーと対処

エラー2: rsync mmap deadlock — Google Drive CloudStorage(2026-05-07 追加)

症状:

rsync(xxxx): error: 90_Meta/<ファイル名>.md: mmap: Resource deadlock avoided
rsync(xxxx): error: rsync_downloader / rsync_receiver
[ERROR] sync failed with exit code 1

通知の「TCC権限要確認」は固定文字列で、真因とは限らない
必ず tail -30 ~/Obsidian/logs/sync.log で実際のエラーを確認すること。

原因:
- macOS の Google Drive for Desktop(CloudStorage プロバイダ)は仮想FSで、rsync が whole-file mmap で書き込もうとすると Drive側の同期ロックと deadlock する
- Drive側に 古い壊れたファイル が残っていると mmap で開けず ループ的に失敗

対処(恒久版・2026-05-07 適用):
- ~/Obsidian/scripts/sync_to_drive.sh に下記オプション追加済み:
- --no-whole-file → ブロック単位 delta-transfer で mmap 回避
- --temp-dir=/tmp/rsync_scale_brain → 一時ファイルをローカルに
- --partial → 途中失敗ファイルを次回再開可能
- 通知文言を実態反映(CAUSE を sync.log から抽出)
- 30分以内の連投防止フラグ(.sync_error_notified

緊急対処(再発時の手順):

# 1. 通知止める
launchctl bootout gui/$(id -u)/com.scale.obsidian-sync

# 2. 真因確認
tail -30 ~/Obsidian/logs/sync.log

# 3. 問題ファイルが Drive側にあれば削除(ローカルから再生成させる)
rm -f "/Users/oogushiyuuki/Library/CloudStorage/GoogleDrive-y-ogushi@scale-group.co.jp/マイドライブ/AI/SCALE-Brain/<該当ファイル>"

# 4. 手動テスト
bash ~/Obsidian/scripts/sync_to_drive.sh
echo "exit_code=$?"
tail -10 ~/Obsidian/logs/sync.log

# 5. 成功なら launchd 再開
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.scale.obsidian-sync.plist

エラー1: rsync sync が TCC 権限で失敗する

症状:

rsync error: open: Operation not permitted
[ERROR] sync failed with exit code 1

原因: macOS の TCC(プライバシー保護)が launchd 経由のrsyncを Google Drive にアクセスさせない

対処:

方法A: フルディスクアクセス権限付与(推奨)

  1. システム設定プライバシーとセキュリティフルディスクアクセス
  2. 鍵アイコンクリックで認証
  3. +」ボタン → /bin/bash を追加(Cmd + Shift + G で隠しパスを直接入力)
  4. ON にする
  5. ターミナル.app も同様に追加(既に追加済みのこと多い)

方法B: 手動で同期

~/Obsidian/scripts/sync_to_drive.sh

(ターミナル経由なら通る)

方法C: GitHub Privateリポにバックアップ追加(保険)

別途 git push で保険をかける

エラー2: Claude CLI 認証切れ

症状:

Not logged in · Please run /login

原因: Claude CLI のセッションが期限切れ

対処:

claude

を起動 → /login コマンド → ブラウザで認証

その後、launchd タスクが再開できる。

エラー3: Slack取得が 0件

症状: [slack] DONE: 0 triggered, 0 raw entries

確認:
1. Bot がチャンネルに招待されているか(/invite @SCALE-Brain Reader
2. :writing_hand: リアクションが正しく付いているか
3. Token が有効か(~/.slack_bot_token

エラー4: Inbox自動整理が動かない

症状: 10/15/20時のlaunchdが実行されたのに整理されてない

確認:

tail -50 ~/Obsidian/logs/auto_organize.log
launchctl list | grep inbox-organize

対処:
- Claude CLI 認証切れなら上記エラー2の対処
- それでもダメなら手動実行: ~/Obsidian/scripts/auto_organize_inbox.sh

エラー5: ファイル消失リスク

保険:
- ローカルに git history(無限undo)
- 必要なら GitHub Private リポにpush
- Trash に Obsidianが移動した分はObsidianの「ゴミ箱から復元」

エラー6: SCALE Base デプロイ後に古い版が表示される

症状:
- bash scripts/deploy.sh で本番反映したのに、ブラウザで古いナビ・古いUI が出る
- ハードリロード(Cmd+Shift+R)しても変わらない時がある

原因:
- Cloudflare Pages のエッジキャッシュが新ビルド伝搬中(数秒〜数分)
- ブラウザが古い HTML を保持し続け、古い JS bundle を読み込む
- _headers ファイルがないと HTML も長期キャッシュされる

恒久対策(2026-04-27 適用済み):
scale-base/public/_headers で Cache-Control を最適化済み:
- /* (HTML) → max-age=0, must-revalidate(毎回オリジン確認)
- /_next/static/*max-age=31536000, immutable(ハッシュ付きで長期キャッシュ可)
- 画像/フォント → 1日〜30日

これにより通常リロード(Cmd+R)で最新版が即時反映されるようになった。

それでも古い版が出る場合:
1. シークレットウィンドウで開く(キャッシュ完全バイパス)
2. bash scripts/deploy.sh --clean でクリーンビルド再デプロイ(バンドルハッシュが変わる)
3. ブラウザの開発者ツール → Network タブ → "Disable cache" にチェック
4. それでも駄目なら Cloudflare Pages ダッシュボードで「Purge Cache」

ヘルスチェックコマンド

定期的にこれを実行すれば全体把握できる:

echo "=== launchd 全体 ===" && launchctl list | grep scale && echo "" && echo "=== 通知履歴(直近5件) ===" && tail -5 ~/Obsidian/logs/notifications.log && echo "" && echo "=== Slack取得 ===" && tail -3 ~/Obsidian/logs/slack_inbox.log && echo "" && echo "=== Inbox整理 ===" && tail -3 ~/Obsidian/logs/auto_organize.log && echo "" && echo "=== Drive同期 ===" && tail -3 ~/Obsidian/logs/sync.log && echo "" && echo "=== Vault統計 ===" && find ~/Obsidian/SCALE-Brain -name "*.md" -not -path "*/.git/*" | wc -l | xargs echo "Markdown:"

🚦 ステータス確認の習慣

朝のチェック(推奨)

1. macOS通知を確認(通知センター開く)
2. Vault Dashboard を開く(Inbox件数チェック)
3. 通知ログ確認: tail -20 ~/Obsidian/logs/notifications.log

異常検知

  • 24時間通知が一切来ない → どれかが止まってる可能性
  • Slackに SCALE-Brain エラー が来た → 即対処

関連ノート