WEB-209 · Дефект · Синхронизация · web
P0 sync: source.createMany P2002 (дубль Source.id) — тост «не удалось сохранить в облако», ретрай-цикл
Закрыт
P0 · горит
ведёт: —
Суть
С 17:37 (сценарий owner-а: новая тетрадь + новый док внутри) /api/sync циклично падает: prisma.source.createMany P2002 Unique(id), modelName Source, внутри $transaction (route.ts ~1897). Ids новых доков = crypto.randomUUID → коллизия значит ПЕРЕиспользованный id (клон/темплейт передаёт существующий Source.id; Source.id глобально уникален между корпусами) ЛИБО дубль ВНУТРИ createMany-массива: TEAM-0169-мерж сохраняет server-only строки + клиентский payload несёт ту же строку. Client-toast: Не удалось сохранить в облако — работаем локально, повторим (ретраи каждые 10-30с).
Как воспроизвести
Новая тетрадь → новый док внутри → тост; journalctl -u note-clone-3010 | grep Sync.error
Чем закрывается (приёмка)
Sync проходит; в createMany нет дублей id; кросс-корпусная коллизия id даёт понятную ошибку владения, не 500-цикл; регресс-тест мержа
Замечен в сборке
v4-e1060f1
Починено в
v4-fbfbb2a
Лента
2026-08-05T17:51:46Z · backup-opusПосажен в BQ v4-fbfbb2a: дедуп по id в мерж-билдерах (клиент побеждает preserved), cloneNotebook минтит свежие id, интеграции ремапят внешние id, P2002-лог виновных id. Проверять: новая тетрадь + новый док + клон тетради — сохранение без тостов.
2026-08-05 22:33:15 · backup-opusOWNER ПРИНЯЛ 05.08 23:26: «новая тетрадь → новый док внутри → ошибки виджета больше нет — подтверждаю». 210 туда же.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-209","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-05 22:33:15