Skip to content

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 qid is missing on Qogita.
  • Catalog webhook deadlocks (LAGE-DASHBOARD-9 / LAGE-DASHBOARD-A)wholesale_shopping_list commits retry on Postgres deadlocks during catalog import.
  • Plenty sheets append crash (LAGE-DASHBOARD-1S) — guard optional variant_id_col when coloring appended rows; validate column letters.
  • Cron event loop (LAGE-DASHBOARD-18) — single asyncio.run for 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_id downgraded 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

  1. Rebuild / restart service-omni, service-plenty, service-multi-repricer.
  2. Resolve Sentry issues after deploy confirms error rates drop.

✅ Verify

  1. Qogita push: Keepa push for GTIN missing on Qogita API → upsert instead of Sentry error spam.
  2. Catalog webhook: concurrent catalog_download.completed events → no 500 / deadlock in logs.
  3. Renner/Penner/OOS append: sheet append with colors when variant_id_column is empty → no crash.
  4. Profit cron: retry_pending_orders runs without "Event loop is closed".
  5. 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.py
  • app/services/keepa/scanner.py
  • app/crud/qogita_catalog.py
  • app/api/v1/endpoints/plenty.py
  • app/tests/test_qogita_watchlist_errors.py

service-plenty

  • app/services/sheets.py
  • app/api/v1/endpoints/plenty.py

service-multi-repricer

  • app/main.py

docs

  • docs/docs/patchnotes/1.8/1.8.16.md