[2026-09-28 07:31:15] taiga-vault: family/documents/vault-sync/2026-09-28-http402-balance-outage-3.md

This commit is contained in:
Taiga committed 2026-09-28 07:31:16 +00:00
1 parent 0ac3efb2f5
commit ea7e83f222
1 file changed
+88
@@ -0,0 +1,88 @@
---
date: 2026-09-28
tags: [vault-sync, cron, incident, deepseek, provider, http402]
---
# 2026-09-28 — третий 402-эпизод: sync стоял 74 мин (13 тиков), 06:15–07:20 UTC
## Что случилось
Тики cron-задачи `sync-vault` (id `29851c413903`) падали с
```
RuntimeError: HTTP 402: Insufficient Balance (request_id: …)
```
| параметр | значение |
|---|---|
| первый упавший тик | `06:15:43` UTC (7,4 с) |
| последний упавший | `07:20:02` UTC (7,6 с) |
| упавших тиков | **13** (каждый 4,3–8,9 с — отказ LLM API, не git) |
| последний успешный до сбоя | `06:10:42` (21,6 с; лог-строки `06:10:51/55/57`) |
| дыра в `/tmp/vault-sync.log` | `06:10:57 → 07:25:07` = **74,2 мин** |
Скрипт в упавших тиках не запускался вообще (prompt-задача без `--no-agent`), поэтому
фаза «телефон → bare» и обе обратные фазы не выполнялись.
## Восстановление (само)
Первый успешный тик — `07:25:02` (completed за 25,1 с): догнал бэклог Eagle/Kraken
`Updating 1e44c42..6dfedbc` (`personal/plans/balda-callee-prism-plan.md` +63/−9,
`personal/plans/balda-mm-pr8-review-fixes.md` — mode-flip), три фазы `Pushed ✓`.
Второй тик (проверочный, Taiga, `07:30:03`) влил остаток бэклога `Updating 6dfedbc..0ac3efb`:
`family/projects/media-toolbox-taiga.md`, `personal/plans/flaresolverr-taiga-deploy.md`,
`personal/tech/flaresolverr-taiga.md` — 3 файла, +259/−265 (переписаны два flaresolverr-файла).
Потерь нет — git-синк идемпотентен, всё доехало за два тика.
## Проверка после восстановления (2026-09-28 07:32 UTC)
```
bare 0ac3efb2f552fcb017a7ac48a16c8888b00f6409
/vault 0ac3efb2f552fcb017a7ac48a16c8888b00f6409
/obsidian-syncthing 0ac3efb2f552fcb017a7ac48a16c8888b00f6409
git status --porcelain → пусто в обоих клонах
git ls-files -u → 0 в обоих клонах
маркеры конфликта вне fenced-блоков → 0 (python-обход)
origin /obsidian-syncthing → file:///vault.git, insteadOf → 2 правила
Push failed 1 (историческая гонка 09-27 10:46), Fetch failed 4 (исторические 09-26 09:40)
ошибок хука post-receive (host-путь) 0, «No such file» 0, лог 28547 строк
```
## Статистика окна (executions.db)
Таблица обрезается до последних ~1001 записи; окно: `2026-09-24 20:10 → 2026-09-28 07:30` UTC.
| статус | всего |
|---|---|
| non-completed | 68 |
| из них 402 `09-25 10:45→15:05` | 53 |
| из них 402 `09-28 06:15→07:20` | **13 (этот эпизод)** |
| из них 503 `09-23 07:35` | 1 |
| из них running (текущий тик) | 1 |
## Вывод: третий 402-эпизод, тренд по длительности хуже не стал
| эпизод | тиков | длительность |
|---|---|---|
| 2026-09-21 03:55 → 04:20 | 6 | 35,3 мин |
| 2026-09-25 10:45 → 15:05 | 53 | 264,6 мин |
| **2026-09-28 06:15 → 07:20** | **13** | **74,2 мин** |
Эпизоды повторяются с периодичностью ~3 суток и всегда заканчиваются сами (внешнее
пополнение баланса). 402 — это про деньги на счёте провайдера, а не про git; пока баланс
пуст, падают **все** prompt-задачи Hermes, потому что каждый тик требует LLM-раунда.
Что стоит сделать (решение владельца, Taiga молча не меняет):
1. **Запас на балансе DeepSeek / авто-пополнение** — снимает 402-эпизоды целиком.
2. **Убрать LLM из петли sync:** `hermes cron edit 29851c413903 --no-agent --script <path>`
(ловушка: `--script` ждёт файл под `~/.hermes/scripts/`, а `/root/.hermes` в контейнере
не переживает рекреацию — нужен персистентный путь, симлинк на `/opt/data/`).
3. Пин модели/провайдера (`--model` / `--provider`) как страховка от деградации одного провайдера.
## Связанные заметки
- `family/documents/vault-sync/2026-09-21-http402-balance-outage.md` — первый эпизод (6 тиков, 35 мин)
- `family/documents/vault-sync/2026-09-25-http402-balance-outage.md` — второй, худший эпизод (53 тика, 4 ч 25 мин)
- скилл `vault-sync-infrastructure` → разделы «Разрыв >30 мин» и «Возможное устранение»