A focused reliability patch completing the 5.2.1 cached-consent fast path. Upgrade: ad_flow: ^5.2.2.
No public API or default configuration changes; internal cached-consent reconciliation and reactive state accuracy were corrected.
What changed
- 5.2.1 introduced safe cached-consent startup serving: an eligible returning user with valid cached UMP consent serves ads while this launch's consent-info update is still in flight.
- 5.2.2 completes downgrade reconciliation when this launch's final consent result becomes
false(consent lapsed and a now-required form was declined). The downgrade invalidates inventory through the existing consent generation before rechecking — so a stale ad whose SDK load was still in flight, and a full-screen show already waiting at an async pre-show check, are now rejected rather than served: the stale handle is disposed, never published asAdLoaded, no impression/show occurs, and the slot settles into an honest blocked state (no duplicate request or retry storm, balanced coordinator). AdFlow.canRequestAdsnow reflects the accepted cachedtrueresult immediately while the fast path is actively serving, then reconciles to the final result.whenReadysemantics are unchanged.
Preserved
Cached-false blocking, ATT exclusion, forwardConsent fail-closed, and request-configuration ordering are all unchanged; a final true settlement does not invalidate good inventory or duplicate loads.
Compatibility
No public API, dependency, configuration, or migration change. SemVer patch.