Every checkout fails since midnight Nobody can pay since the domain move Checkouts hang, then fail Second attempt after editing the cart The payment went through — the page says it did not Orders stuck on pending Most checkouts fail, some go through Every checkout fails since the pricing deploy One customer cannot pay Instant failure after the release Start over
Symptom
Frontend shows: Payment failed.
— Support tickets started at 00:04 UTC. — No deploy in the last 48 hours. — Nothing on the team calendar for last night. Hypothesis before evidence
From the symptom and context alone, the cause is most likely in the choose a layer UI Network Backend Provider Database layer.
Write the prediction first. A probe only teaches something when it could have disagreed with you.
Available probes
UI
Browser console · 1 Hard refresh · 1 Retry the same request · 1 Try another account · 1
Network
Network tab · 1 Request id · 1
Backend
Backend logs · 2 Backend metrics · 2 Backend config · 2 Reproduce on staging · 2 Restart the server · 2
Provider
Provider dashboard · 2 Provider status page · 1
Database
DB slow query log · 3 DB connections · 3
Evidence
No evidence yet. Start with a cheap probe that can distinguish several layers.
Commit to a cause
Choose a cause A feature gate is closed in production and short-circuits checkout An idempotency key is reused with different charge parameters An outdated frontend bundle misreads a successful response Leaked transactions have exhausted the database connection pool Payment confirmations are delivered to the wrong environment The backend gives up on the provider call before the provider answers The bank declined the card; the system worked correctly The browser refuses to send the request (CORS origin not allowed) The charge amount is sent in a format the provider rejects The production provider API key has expired Reveal