[Bug]: RuntimeException: Tried to schedule job for non-existent component
Closed this issue · 3 comments
What happened?
One of our users (out of thousands of people) is getting an exception thrown. This exception occurred over 25 times over the course of a couple of days for this user.
Full stack trace below:
Fatal Exception: java.lang.RuntimeException
Unable to stop activity {com.unpluq.beta/com.unpluq.beta.activities.MainActivity}: java.lang.IllegalArgumentException: Tried to schedule job for non-existent component: ComponentInfo{com.unpluq.beta/com.onesignal.core.services.SyncJobService}
android.app.ActivityThread.callActivityOnStop (ActivityThread.java:5906)
android.app.ActivityThread.performStopActivityInner (ActivityThread.java:5872)
android.app.ActivityThread.handleStopActivity (ActivityThread.java:5943)
android.app.servertransaction.StopActivityItem.execute (StopActivityItem.java:43)
android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:180)
android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:98)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:2685)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loopOnce (Looper.java:230)
android.os.Looper.loop (Looper.java:319)
android.app.ActivityThread.main (ActivityThread.java:8919)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:578)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)
Caused by java.lang.IllegalArgumentException
Tried to schedule job for non-existent component: ComponentInfo{com.unpluq.beta/com.onesignal.core.services.SyncJobService}
android.os.Parcel.createExceptionOrNull (Parcel.java:3073)
android.os.Parcel.createException (Parcel.java:3053)
android.os.Parcel.readException (Parcel.java:3036)
android.os.Parcel.readException (Parcel.java:2978)
android.app.job.IJobScheduler$Stub$Proxy.schedule (IJobScheduler.java:438)
android.app.JobSchedulerImpl.schedule (JobSchedulerImpl.java:87)
com.onesignal.core.internal.background.impl.BackgroundManager.scheduleSyncServiceAsJob (BackgroundManager.kt:199)
com.onesignal.core.internal.background.impl.BackgroundManager.scheduleBackgroundSyncTask (BackgroundManager.kt:157)
com.onesignal.core.internal.background.impl.BackgroundManager.scheduleSyncTask (BackgroundManager.kt:149)
com.onesignal.core.internal.background.impl.BackgroundManager.scheduleBackground (BackgroundManager.kt:104)
com.onesignal.core.internal.background.impl.BackgroundManager.onUnfocused (BackgroundManager.kt:87)
com.onesignal.core.internal.application.impl.ApplicationService$handleLostFocus$1.invoke (ApplicationService.kt:369)
com.onesignal.core.internal.application.impl.ApplicationService$handleLostFocus$1.invoke (ApplicationService.kt:369)
com.onesignal.common.events.EventProducer.fire (EventProducer.kt:50)
com.onesignal.core.internal.application.impl.ApplicationService.handleLostFocus (ApplicationService.kt:369)
com.onesignal.core.internal.application.impl.ApplicationService.onActivityStopped (ApplicationService.kt:190)
android.app.Application.dispatchActivityStopped (Application.java:510)
android.app.Activity.dispatchActivityStopped (Activity.java:1589)
android.app.Activity.onStop (Activity.java:2789)
androidx.fragment.app.FragmentActivity.onStop (FragmentActivity.java:520)
androidx.appcompat.app.AppCompatActivity.onStop (AppCompatActivity.java:257)
android.app.Instrumentation.callActivityOnStop (Instrumentation.java:1623)
android.app.Activity.performStop (Activity.java:9236)
android.app.ActivityThread.callActivityOnStop (ActivityThread.java:5898)
android.app.ActivityThread.performStopActivityInner (ActivityThread.java:5872)
android.app.ActivityThread.handleStopActivity (ActivityThread.java:5943)
android.app.servertransaction.StopActivityItem.execute (StopActivityItem.java:43)
android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:180)
android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:98)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:2685)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loopOnce (Looper.java:230)
android.os.Looper.loop (Looper.java:319)
android.app.ActivityThread.main (ActivityThread.java:8919)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:578)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)
Caused by android.os.RemoteException
Remote stack trace: at com.android.server.job.JobSchedulerService$JobSchedulerStub.enforceValidJobRequest(JobSchedulerService.java:4308) at com.android.server.job.JobSchedulerService$JobSchedulerStub.schedule(JobSchedulerService.java:4499) at android.app.job.IJobScheduler$Stub.onTransact(IJobScheduler.java:227) at android.os.Binder.execTransactInternal(Binder.java:1380) at android.os.Binder.execTransact(Binder.java:1311)
Steps to reproduce?
Not sure, only happened for one user, but from stack trace looks like somehow the component that the `com.onesignal.core.services.SyncJobService` is trying to schedule doesn't exist
What did you expect to happen?
N/A
OneSignal Android SDK version
5.1.9
Android version
14
Specific Android models
Samsung Galaxy A34 5G (only happened for one user with this device so far)
Relevant log output
No response
Code of Conduct
- I agree to follow this project's Code of Conduct
com.onesignal.core.services.SyncJobService
should always exist. If it is only happening on one device a number of times (out of thousands) then I suspect:
- Samsung has a rare bug at the Operation System level.
- The person has a custom ROM on their device
A. It has a bug
B. It has some kind of custom feature attempting to block background jobs. - The person has modified your app and remove this from the
AndroidManifest.xml
.
Yeah that makes sense. Probably okay to ignore for now
Let us know if you are able to reproduce or see more instances of the problem and we can look into it again.