What changed
Producer-side tools call this non-breaking. For a consumer it is a null dereference on an unknown future date.
Affects qualifying_item_variation_ids on LoyaltyPromotion reachable from 4 operations. Nothing fails at the call; it fails wherever the value is finally used, which is usually somewhere else entirely.
no longer guaranteed present; can now be null
Who is affected
Code that reads Square's LoyaltyPromotion objects, used by 4 Square operations.
Before and after
| Where | Before | After |
|---|---|---|
| LoyaltyPromotion.qualifying_item_variation_ids | always present | may be missingno longer guaranteed present |
| LoyaltyPromotion.qualifying_item_variation_ids | array | array|nullcan now be null |
Code that breaks
// response.qualifying_item_variation_ids may now be absent or null const qualifying_item_variation_ids = response.qualifying_item_variation_ids ?? fallback;
Based on Square’s published API specification. How severity is decided.