Closed nan-li closed 2 months ago
Badge test started failing this week, but can look at later.
It looks like the runner-image has changed, and the new tests are run on ios 18.1.
Previous passing runner image used:
Included Software: https://github.com/actions/runner-images/blob/macos-14/20240811.3/images/macos/macos-14-Readme.md Image Release: https://github.com/actions/runner-images/releases/tag/macos-14%2F20240811.3
Failing runner image used:
Included Software: https://github.com/actions/runner-images/blob/macos-14/20240818.2/images/macos/macos-14-Readme.md Image Release: https://github.com/actions/runner-images/releases/tag/macos-14%2F20240818.2
Description
One Line Summary
Handle incorrect 404 responses from the OneSignal's backend by adding a delay after creates, when new subscription IDs or OneSignal IDs can be created on the backend.
Details
See Android Implementation here
Backend Issue
OneSignal sometimes returns a
404
onGET
andPATCH
requests if you are accessing something immediately after it was created. Normally the OneSignal backend can accept fetch/updates right way, but it all depends on it's server load and replication process. There isn't a guaranteed amount of time a client can wait, so SDKs has to work around this problem.SDK's work around strategy
Add a minimum delay after creating records (User or Subscription) before allowing any requests to fetch or update that specific record, based on the
onesignalId
orsubscriptionId
.Motivation
404/410 responses are being handled by recreating the missing record (User or Subscription), however this isn't always the right way to handle these, give the backend caveat noted above. Recreating these records can create side-effects and extra load we want to avoid.
Scope
Add a delay processing user-based or subscription-based requests.
Future Considerations
Testing
Unit testing
🚧 New unit tests are WIP
Manual testing
Physical iPhone 13 on iOS 17.4
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is