1.8.16
⚙️ Patch 1.8.16 — Sentry production error fixes¶
🚀 Summary¶
- Qogita watchlist 404 noise (LAGE-DASHBOARD-7) — expected PATCH-not-found during upsert now logs at warning level; Keepa push falls back to upsert when a stale
qidis missing on Qogita. - Catalog webhook deadlocks (LAGE-DASHBOARD-9 / LAGE-DASHBOARD-A) —
wholesale_shopping_listcommits retry on Postgres deadlocks during catalog import. - Plenty sheets append crash (LAGE-DASHBOARD-1S) — guard optional
variant_id_colwhen coloring appended rows; validate column letters. - Cron event loop (LAGE-DASHBOARD-18) — single
asyncio.runfor pending-order retry + client close. - WebSocket disconnect noise (LAGE-DASHBOARD-2) — normal client disconnects log at info, not error.
- Default catalog fallback (LAGE-DASHBOARD-B) — missing
catalog_iddowngraded from error to warning.
✨ Improvements¶
Sentry triage run — 15.07.2026¶
| Issue | Root cause | Fix |
|---|---|---|
| LAGE-DASHBOARD-7 | PATCH watchlist 404 logged as error during upsert | Warning-level log; Keepa 404 → upsert fallback |
| LAGE-DASHBOARD-9 | Deadlock on wholesale_shopping_list during catalog webhook |
_commit_with_deadlock_retry() on catalog apply + flag sync |
| LAGE-DASHBOARD-A | HTTP 500 from same webhook handler | Same deadlock retry (related) |
| LAGE-DASHBOARD-1S | NoneType.upper when variant_id_col unset on append |
Skip variant column coloring when unset |
| LAGE-DASHBOARD-18 | Double asyncio.run closed loop before manager.close() |
One async helper for fetch + close |
| LAGE-DASHBOARD-2 | Normal WS disconnect logged as error | WebSocketDisconnect → info |
| LAGE-DASHBOARD-B | Expected default catalog_id fallback logged as error | logger.warning |
🔧 Deploy¶
- Rebuild / restart
service-omni,service-plenty,service-multi-repricer. - Resolve Sentry issues after deploy confirms error rates drop.
✅ Verify¶
- Qogita push: Keepa push for GTIN missing on Qogita API → upsert instead of Sentry error spam.
- Catalog webhook: concurrent
catalog_download.completedevents → no 500 / deadlock in logs. - Renner/Penner/OOS append: sheet append with colors when
variant_id_columnis empty → no crash. - Profit cron:
retry_pending_ordersruns without "Event loop is closed". - Tests:
pytest backend/service_omni/app/tests/test_qogita_watchlist_errors.py backend/service_omni/app/tests/test_qogita_catalog_unit.py
⚠️ Notes¶
- Sentry issues stay unresolved until this patch is deployed and monitored.
- LAGE-DASHBOARD-7 may still appear at warning volume in logs — that is expected during upsert.
Files touched¶
service-omni
app/services/qogita/qogita_client.pyapp/services/keepa/scanner.pyapp/crud/qogita_catalog.pyapp/api/v1/endpoints/plenty.pyapp/tests/test_qogita_watchlist_errors.py
service-plenty
app/services/sheets.pyapp/api/v1/endpoints/plenty.py
service-multi-repricer
app/main.py
docs
docs/docs/patchnotes/1.8/1.8.16.md