[2026-09-21 04:26:21] taiga-vault: family/documents/vault-sync/2026-09-21-http402-balance-outage.md
This commit is contained in:
1 parent
80c062f3fb
commit
a921c95f6f
1 file changed
+88
@@ -0,0 +1,88 @@
|
||||
---
|
||||
date: 2026-09-21
|
||||
tags: [vault-sync, cron, incident, deepseek, provider]
|
||||
---
|
||||
|
||||
# 2026-09-21 — простой sync 30 мин из-за HTTP 402: Insufficient Balance (провайдер)
|
||||
|
||||
## Что случилось
|
||||
|
||||
Шесть подряд тиков cron-задачи `sync-vault` (id `29851c413903`) упали с ошибкой
|
||||
провайдера LLM:
|
||||
|
||||
```
|
||||
RuntimeError: HTTP 402: Insufficient Balance
|
||||
```
|
||||
|
||||
Тики: `03:55:11`, `04:00:12`, `04:05:13`, `04:10:14`, `04:15:15`, `04:20:16` UTC.
|
||||
Каждый падал за 3–14 с — это отказ на стороне LLM API, не на стороне git.
|
||||
|
||||
Следствие: `/tmp/vault-sync.log` — дыра `03:50:18 → 04:25:34` (35,3 мин, 7 пропущенных слотов).
|
||||
Последний успешный тик до сбоя: `03:50:10` (completed).
|
||||
|
||||
## Восстановление
|
||||
|
||||
Тик `04:25:18` (ручной прогон `bash /opt/data/sync-vault.sh`) — **completed**, exit 0,
|
||||
все три фазы `Pushed ✓`. Баланс/провайдер к этому моменту снова отвечал.
|
||||
|
||||
Бэклог за время простоя влит одним махом:
|
||||
|
||||
```
|
||||
[2026-09-21 04:25:34] [syncthing] Pushed ✓
|
||||
[main 5e02428] syncthing: family/documents/movies-watchlist.md personal/documents/fly-box.md
|
||||
Merge made by the 'ort' strategy.
|
||||
family/plans/watchlist-cleanup.md | 78 +++++++++++++++++++++++++++++++-----
|
||||
Updating 6d83071..80c062f (Fast-forward)
|
||||
family/documents/movies-watchlist.md | 6 +--
|
||||
personal/documents/fly-box.md | 9 ++++-
|
||||
[2026-09-21 04:25:47] [taiga-vault] Pushed ✓
|
||||
[2026-09-21 04:25:49] [syncthing-out] Pushed ✓
|
||||
```
|
||||
|
||||
Проверка выравнивания (все три SHA равны, рабочие каталоги чистые):
|
||||
|
||||
```
|
||||
bare 80c062f3fbf5a9909cfc1f8b839b7a4abcd4086a
|
||||
/vault 80c062f3fbf5a9909cfc1f8b839b7a4abcd4086a
|
||||
/obsidian-syncthing 80c062f3fbf5a9909cfc1f8b839b7a4abcd4086a
|
||||
git status --porcelain → пусто (оба клона)
|
||||
```
|
||||
|
||||
**Данные не потеряны** — git-синк идемпотентен, следующий удачный тик догнал всё.
|
||||
|
||||
## Причина
|
||||
|
||||
`HTTP 402: Insufficient Balance` — исчерпан баланс аккаунта LLM-провайдера (DeepSeek).
|
||||
Задача `sync-vault` — prompt-задача, каждый тик требует LLM-раунда, поэтому при нулевом
|
||||
балансе скрипт вообще не запускается: падает не git, падает агентский раунд.
|
||||
|
||||
Это **новый, ранее не встречавшийся в таком объёме** режим отказа: до этого в
|
||||
`executions.db` был лишь однократный 402 (в заметке `2026-09-14-cron-api-timeout-sync-outage.md`
|
||||
он упоминался как повод «проверить баланс провайдера»).
|
||||
|
||||
## Статистика окна (executions.db, окно 2026-09-17 11:40 → 2026-09-21 04:25)
|
||||
|
||||
| статус | всего |
|
||||
|---|---|
|
||||
| completed | 979 |
|
||||
| failed | 20 (6 из них — HTTP 402 сегодня) |
|
||||
| unknown | 1 |
|
||||
| running | 1 (текущий) |
|
||||
|
||||
Ошибка 402: ровно 6 записей, окно `03:55:11 → 04:20:16` — единичный эпизод, не серия.
|
||||
|
||||
## Вывод и что делать
|
||||
|
||||
1. Эпизод короткий, самовосстановившийся, потерь данных нет — вмешательство в конфиг
|
||||
sync **не требуется**.
|
||||
2. Но 402 — это про деньги на счёте провайдера, а не про git. Пока баланс пуст, падают
|
||||
**все** cron-задачи Hermes, а не только sync. Стоит проверить баланс DeepSeek и
|
||||
держать запас / настроить авто-пополнение.
|
||||
3. Радикальное устранение самой зависимости от LLM в этой петле — перевод задачи в
|
||||
`--no-agent --script` (см. раздел «Возможное устранение» в скилле
|
||||
`vault-sync-infrastructure`): тогда 402/таймауты провайдера перестанут ронять sync.
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
- `family/documents/vault-sync/2026-09-20-morning-sync-outage.md` — предыдущий эпизод (3 ч 10 мин, таймауты провайдера)
|
||||
- скилл `vault-sync-infrastructure` → разделы «Разрыв >30 мин» и «Exit code 0, но push не случился»
|
||||
Reference in new issue
Block a user