Files
buzz/mobile/ios/BuzzPushKit
Tom Brow 39d8f6a405 fix(ios): keep rejected enrollment journals until replaced
A rejected journal was deleted before its replacement was prepared, so a
failed challenge fetch or restart lost the rejection count and reset the
backoff. Keep the rejected journal until the fresh request overwrites it.

A 400 or 401 can also reject a request that committed before its response
was lost, once its attestation certificate expires. The replacement then
conflicts with the live installation, consumes its challenge, and replays
as 404, which replaced again at once with the count reset. Count every
replacement and apply the doubling wait to a 404 that follows one, so
each such cycle mints a bounded number of App Attest keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tom Brow <tomb@block.xyz>
2026-10-27 12:33:05 -07:00
..