From 5e0242858d8576a936451fb67878b90f16f14d0c Mon Sep 17 00:00:00 2001 From: Taiga Date: Mon, 21 Sep 2026 04:25:36 +0000 Subject: [PATCH 1/2] [2026-09-21 04:25:34] syncthing: family/documents/movies-watchlist.md personal/documents/fly-box.md --- family/documents/movies-watchlist.md | 6 +++--- personal/documents/fly-box.md | 9 ++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/family/documents/movies-watchlist.md b/family/documents/movies-watchlist.md index 1d0e457f..7e90a730 100644 --- a/family/documents/movies-watchlist.md +++ b/family/documents/movies-watchlist.md @@ -99,10 +99,10 @@ related: - [ ] [Метод исключения](https://www.kinopoisk.ru/film/484791/) (2025) IMDb 7.6 KP 7.1 - [ ] [Сын льва](https://www.kinopoisk.ru/film/5940932/) (2025) IMDb 7.3 - [ ] ⬇️ [Я ругаюсь](https://www.kinopoisk.ru/film/8472578/) (2025) IMDb 8.4 KP 8.5 - - [ ] ⬇️ Кокаиновый медведь + - [x] ⬇️ Кокаиновый медведь - [ ] ⬇️ Они придут за тобой - [ ] ⬇️ Наш флаг означает смерть ✭ - - [ ] ⬇️ Проект конец света + - [x] ⬇️ Проект конец света - [ ] Пропеллер ночной рейс в один конец - [x] ⬇️ Неистовый - [ ] ⬇️ Поступь хаоса @@ -185,7 +185,7 @@ related: - [ ] 🧟‍♀️ Субстанция - [ ] Мальчишки из никеля - [ ] Я всё ещё здесь - - [ ] 🧟‍♀️ Смерть единорога + - [ ] 🧟‍♀️ Смерть единорога ⭐ - [ ] 🧟‍♀️ Ужасающий - [ ] 🧟‍♀️ Человеческая многоножка - [ ] Песочный человек diff --git a/personal/documents/fly-box.md b/personal/documents/fly-box.md index de40e994..d37d6c43 100644 --- a/personal/documents/fly-box.md +++ b/personal/documents/fly-box.md @@ -24,7 +24,7 @@ related: - [x] 79030136520687 лакричный чай 5.9 - [x] 79137783238536 свитч 7.9 - [x] 79138973034806 велобутылк -- [ ] YT0705650145204 FishFriend 12.97 +- [ ] YT0705650145204 FishFriend 12.9 - [ ] JT3176847308531 Прикуриватель 12.9 - [x] 777443251715545 трусы - [ ] 79138780629095 штатив для тел 12.9 @@ -52,6 +52,13 @@ related: - [ ] 79034152548062 ram - [ ] 79034172033129 orangepi case - [ ] 79034214421518 orangepi +- [ ] 79142348623888 thermal pad +- [ ] 465696325892217 oral-b +- [ ] 777447485817868 eth hub +- [ ] 79142684363226 usb hub +- [ ] YT0709028531963 eth розетка +- [ ] 465703194433665 свитч +- [ ] From a921c95f6f26bb1d70ce9c4f6f4b4f9be392235d Mon Sep 17 00:00:00 2001 From: Taiga Date: Mon, 21 Sep 2026 04:26:21 +0000 Subject: [PATCH 2/2] [2026-09-21 04:26:21] taiga-vault: family/documents/vault-sync/2026-09-21-http402-balance-outage.md --- .../2026-09-21-http402-balance-outage.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 family/documents/vault-sync/2026-09-21-http402-balance-outage.md diff --git a/family/documents/vault-sync/2026-09-21-http402-balance-outage.md b/family/documents/vault-sync/2026-09-21-http402-balance-outage.md new file mode 100644 index 00000000..9a08e255 --- /dev/null +++ b/family/documents/vault-sync/2026-09-21-http402-balance-outage.md @@ -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 не случился»