Repository navigation
Conversation
Remote logging exports every line at or above the server-set level, and iOS still used levels chosen for the Xcode console. This pass applies the rule from SDK-3661: ERROR and FATAL mean the SDK did something wrong or hit a state it cannot recover from. Anything the SDK handles, retries, or that the app developer has to fix is WARN or below. Request failures in the User executors go through a shared helper: INFO when the response is retryable, WARN when the executor drops or holds the request. Create User keeps ERROR on the branch that pauses the Operation Repo until the next session, and logs INFO when it retries or holds for a token. Setup mistakes stay visible at the default console level as WARN: missing optional modules when their API is called, the missing location usage description, the missing push capability, the simulator, API calls before init, and invalid input to public APIs. Handled runtime conditions are INFO: location denied, in-app message fetch, impression and WebView errors, receive receipt and session outcome failures that retry, and the LiveActivities module check at init, which now has its own message so it does not group with the API-call warning. Housekeeping lines go to DEBUG. The consent guard in OneSignalClient now formats the request class into its message instead of printing a bare %@. Kept at ERROR: cache decode failures, the SDK's own JSON parsing, requests that cannot be built, Identity Verification refusals, and the "should never happen" guards. The invalid app ID FATAL stays: a native app with a bad app ID never fetches params, so remote logging never starts and nothing is exported.
Drop the note above the Create User ERROR branch. The comment below it already says the pause lasts until a new session. Cut the logRequestFailure doc to the caller rule its body cannot show.
nan-li
marked this pull request as ready for review
October 22, 2026 00:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
One Line Summary
Log handled failures and setup mistakes below ERROR, so ERROR means an SDK fault.
Details
Motivation
Remote logging exports every line at or above the level the server sets. iOS logged ERROR for cases the SDK already handles, such as a 404 on fetch user or a denied location prompt, and that volume from 5.6.0+ installs trips alerts. Android made the same change in OneSignal-Android-SDK#2531.
Scope
OneSignalClientnames the request class instead of printing a bare%@. The LiveActivities check at init logs its own INFO line, apart from the warning when the API is called without the module.Testing
Unit testing
No new tests. No existing test asserts the level of a changed line.
Manual testing
I ran the User, OSCore, Core and InAppMessages test bundles from the Reduced plan on an iPhone 17 Pro simulator with iOS 26.5.
Affected code checklist
Checklist
Overview
Testing
Final pass
🤖 Generated with Claude Code