Driftwatch

Square / Square API /

Breakingdirection flip: their tools call this safe

Response field qualifying_item_variation_ids is no longer guaranteed

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

WhereBeforeAfter
LoyaltyPromotion.qualifying_item_variation_idsalways presentmay be missingno longer guaranteed present
LoyaltyPromotion.qualifying_item_variation_idsarrayarray|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.