Overview
Deployment activity across the acme organization.
Deploys this week
13
Across 6 repositories
Success rate
82%
9 of 11 finished runs
Active environments
3
production, staging, preview
Open incidents
1
payments-prod rollout blocked
Recent deployments
View all| Status | Repository | Commit | Time |
|---|---|---|---|
| Running | acme/checkout-webfeat(cart): persist promo codes across sessions | 4a7be21 | 18m ago |
| Failed | acme/payments-apifeat(settlements): add nightly batch reconciler | 9f2c1d4 | 1h ago |
| Success | acme/notifications-workerchore(deps): bump amqp client to 5.21.0 | 1c83f07 | 2h ago |
| Success | acme/identity-servicefix(oauth): refresh token rotation on concurrent grants | e50d9a3 | 3h ago |
| Pending | acme/analytics-gatewayfeat(tracing): emit OTel spans for ingest pipeline | 77bc4e8 | 3h ago |
| Success | acme/payments-apirefactor(ledger): extract idempotency key store | b2f6d90 | 16h ago |
DevMate summary
high confidenceWhat happened
Rollout blocked by memory limits, not by your code
The image built and the manifests applied cleanly. During verification, 3 of 4 pods were OOMKilled about 10 seconds after start and fell into CrashLoopBackOff, so the rollout never reached the minimum of 3 available replicas. The new nightly batch reconciler loads settlement batches into memory at boot, which pushes steady-state usage to roughly 249Mi against a 256Mi container limit that has not changed since March. Traffic was never shifted — the previous revision (2e7f83b) is still serving production.
Suggested fixes
- 1
Raise the memory limit to 512Mi
The reconciler needs headroom above the 249Mi observed peak. Doubling the limit leaves ~50% margin and matches what identity-service runs with.
- 2
Stream settlement batches instead of loading them at boot
SettlementReconciler.loadPendingBatches() reads the full result set into a list. Paging it at 500 rows would keep the container under 300Mi without changing the limit.
+1 more suggestion