errorregressedcheckout-apijava

NullPointerException: Cannot invoke "String.length()" because "promoCode" is null for cart <uuid>

com.example.checkout.CartService#total

Events14
First seen16d ago2026-08-07 17:32:56 UTC
Last seen14d ago2026-08-09 10:28:51 UTC
Releases1.4.0
regression

This group was resolved in 1.7.0 and came back in 1.8.0, 14d ago. The fix did not hold.

Events per day, from the rollups14 in this window · peak 10
10
25 Jul
 
 
 
 
30 Jul
 
 
 
 
04 Aug
 
 
 
 
09 Aug
 
 
 
 
14 Aug
 
 
 
 
19 Aug
 
 
 
 
Table view
Bucket (UTC)Events
2026-07-25 00:00:000
2026-07-26 00:00:000
2026-07-27 00:00:000
2026-07-28 00:00:000
2026-07-29 00:00:000
2026-07-30 00:00:000
2026-07-31 00:00:000
2026-08-01 00:00:000
2026-08-02 00:00:000
2026-08-03 00:00:000
2026-08-04 00:00:000
2026-08-05 00:00:000
2026-08-06 00:00:000
2026-08-07 00:00:004
2026-08-08 00:00:000
2026-08-09 00:00:0010
2026-08-10 00:00:000
2026-08-11 00:00:000
2026-08-12 00:00:000
2026-08-13 00:00:000
2026-08-14 00:00:000
2026-08-15 00:00:000
2026-08-16 00:00:000
2026-08-17 00:00:000
2026-08-18 00:00:000
2026-08-19 00:00:000
2026-08-20 00:00:000
2026-08-21 00:00:000
2026-08-22 00:00:000
2026-08-23 00:00:000

How this group was decided

Every step below is a pure function of the event. The same event always produces the same group.

  1. 1 · Parse the stack trace

    5 frames parsed, 2 belong to the application. Only those decide the group — the same bug reaches the runtime through different framework paths depending on the request.

    • in-appcom.example.checkout.CartService.totalCartService.java:42
    • in-appcom.example.checkout.CheckoutController.submitCheckoutController.java:88
    • vendorjdk.internal.reflect.DirectMethodHandleAccessor.invokeDirectMethodHandleAccessor.java:103
    • vendororg.springframework.web.method.support.InvocableHandlerMethod.doInvokeInvocableHandlerMethod.java:255
    • vendororg.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:166
  2. 2 · Build the fingerprint input

    Line numbers are dropped so that editing a line above the throw site does not open a new group. Values inside the message are replaced with placeholders.

    v1
    platform=java
    service=checkout-api
    type=java.lang.NullPointerException
    frame=com.example.checkout.CartService#total
    frame=com.example.checkout.CheckoutController#submit
  3. 3 · Hash it

    SHA-256 of the text above, truncated to 128 bits. The version is part of the group key: a future algorithm opens new groups rather than rewriting these.

    Fingerprint
    b2b9c15ea9557bba93353505c471e919
    Algorithm version
    v1

Similar groups

Trigram similarity computed by Postgres against a GIN index. It catches what a fingerprint cannot — the same fault one refactor away from an existing group. No model is involved.