fix(android): catch foreground service crashes on Android 12-14 - #77
Open
eoinoreilly30 wants to merge 1 commit into
Open
fix(android): catch foreground service crashes on Android 12-14#77eoinoreilly30 wants to merge 1 commit into
eoinoreilly30 wants to merge 1 commit into
Conversation
Added error handling for starting foreground service.
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.
fix(android): catch foreground service crashes on Android 12-14
Daily's DailyOngoingMeetingForegroundService has two unguarded calls
that throw fatal RuntimeExceptions on certain Android versions:
startForegroundService()throws ForegroundServiceStartNotAllowedExceptionon Android 12+ when the app is in the background at the time of the call
startForeground()throws SecurityException on Android 14+ when themicrophone foreground service type requirements are not met (eligible
state/exemption check)
Both are native crashes (UncaughtExceptionHandler, handled=false) that
kill the app entirely and cannot be caught from JavaScript.
Example fatal error from production:
Wrap both calls in try-catch blocks so the service fails gracefully. The
only degradation is the loss of the in-call notification and background
keep-alive — the call itself continues to work while the app is in the
foreground.