TypeError: Cannot read properties of null (reading 'total')
at CheckoutViewModel.submit (checkout-view-model.ts:88:34)
at async onSubmitClick (checkout-form.tsx:52:5)
at async HTMLFormElement.handler (checkout-form.tsx:19:3)Workspace
Checkout Service
Defects — three sources, one list
A monitor incident, a crash spike, and a resource-saturation event all land here the same way, each with the AI analysis already attached.
| Title | Status | Severity | Priority | Source | Created |
|---|---|---|---|---|---|
| api-gateway: elevated 5xx after deploy | resolved | high | high | Monitor | 2026-09-18 |
| NullPointerException in CheckoutViewModel.submit() — spiking after v2.4.1 | triaged | critical | urgent | Crash | 2026-09-18 |
| orders-worker CPU saturation — 94% sustained for 12 minutes | new | high | high | Resource alert | 2026-09-18 |
Resolved incident, diagnosed
api-gateway · production
- Started
- 2026-09-18 09:14:00
- Resolved
- 2026-09-18 09:41:00
- Downtime
- 27m
Latency and 5xx rate spiked together right after the 09:12 deploy — consistent with DB connection-pool exhaustion. The deploy dropped the configured pool size from 40 to 20 connections; /orders writes started queueing under normal peak load and the queue drained once the pool was resized back to 40 at 09:38.
Opened defect def_demo_monitor — see below.
Crash signature — grouped, attributed, flagged
CheckoutViewModel.submit() — NullPointerException
a1b2c3d4-checkout-submit-npeAI analysis
gpt-5-mini · prompt v1.0.0 · 2026-09-18 11:06:10CheckoutViewModel.submit() reads the cached cart total before the async pricing-refresh call introduced in 2.4.1 resolves, so a fast double-submit or a slow network hits the field while it is still null.
Await the pricing-refresh promise (or fall back to the last known total) before reading cart.total in submit().
Affected versions
- 2.4.141
- 2.4.06
Affected devices
- Chrome 128 / macOS19
- Chrome 128 / Windows15
- Safari 17 / iOS13
Grouped occurrences (3 stack traces folded into this one signature)
Expand stack traces
TypeError: Cannot read properties of null (reading 'total')
at CheckoutViewModel.submit (checkout-view-model.ts:88:34)
at async retrySubmit (checkout-view-model.ts:104:11)
at async onSubmitClick (checkout-form.tsx:52:5)TypeError: null is not an object (evaluating 'cart.total')
at CheckoutViewModel.submit (checkout-view-model.ts:88:34)
at async onSubmitClick (checkout-form.tsx:52:5)The defect it opened
NullPointerException in CheckoutViewModel.submit() — spiking after v2.4.1
def_demo_crashproject checkout · created 2026-09-18 · opened from crash signature crs_8f2a1c
Analysis (AI)
gpt-5-mini · prompt v1.0.0 · 2026-09-18 11:06:10This signature accounts for 47 occurrences across 213 users, concentrated almost entirely in build 2.4.1 (41 of 47) — the shape of a regression, not background noise. First seen 11 minutes after 2.4.1 finished rolling out.
CheckoutViewModel.submit() dereferences the cached cart total before the new async pricing-refresh call resolves, which 2.4.1 introduced. Null read on a race, not a data problem.
Release quality score
web · v2.4.1
Weighted average of dimension scores: Mobile 30%, Crash 30%, Monitor 25%, Stress 15% (raw weights; redistributed across whichever dimensions have data). Defects joins in a later phase.
- Monitor82 · 31%
- Crash61 · 31%
- Defects68 · 38%
- StressNo qualifying runs
v1 · 2026-09-18T14:05:00.000Z
Incidents during the release window, by severity.
1 incident (high severity) — the api-gateway connection-pool exhaustion above, resolved in 27m.
Production crashes during the release window, weighted by severity and category.
1 signature, 47 occurrences, 1 fatal — the CheckoutViewModel regression above, flagged this release.
Status page
CleverQA Checkout
- checkout-apiCPU saturation under investigation
- api-gatewayResolved incident 2h ago
- orders-workerNo issues reported
- auth-serviceNo issues reported
This is what CleverQA looks like on day one.
Every card above is demo data — connect your first service and CleverQA builds this same workspace from what's actually happening.