Status Update
Comments
hu...@gmail.com <hu...@gmail.com> #2
ra...@google.com <ra...@google.com> #3
since it is already marked as deprecated, we can probably do it by now.
hu...@gmail.com <hu...@gmail.com> #4
hu...@gmail.com <hu...@gmail.com> #5
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request from
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
ra...@google.com <ra...@google.com> #6
JobScheduler is used for API >= 23.
This issue should have been resolved in `alpha03` and `alpha04` (we addressed different parts of the problem). If you can reproduce this on a device, then can you do:
1. adb shell dumpsys jobscheduler for your app.
2. Reboot your device.
3. After the reboot, can you re-run adb shell dumpsys jobscheduler ?
I want to check if you see any differences in the jobs created before and after the reboot.
Thanks for your patience.
ra...@google.com <ra...@google.com> #7
hu...@gmail.com <hu...@gmail.com> #8
ra...@google.com <ra...@google.com>
ra...@google.com <ra...@google.com> #9
For reference, this is what my activity looks like:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<Button>(R.id.scheduler_limits_testcase1).setOnClickListener {
for (i in 1..100) {
val a1 = newWorkRequest("--- A1 ---")
val b1 = newWorkRequest("--- B1 ---")
val b2 = newWorkRequest("--- B2 ---")
val c1 = newWorkRequest("--- C1 ---")
WorkManager.getInstance()!!
.beginWith(a1).then(b1).enqueue()
WorkManager.getInstance()!!
.beginWith(a1).then(b2).enqueue()
WorkManager.getInstance()!!
.beginWith(b1, b2).then(c1).enqueue()
}
}
}
companion object {
private fun newWorkRequest(message: String): OneTimeWorkRequest {
val data = mapOf(TestWorker.KEY_MESSAGE to message).toWorkData()
return OneTimeWorkRequestBuilder<TestWorker>()
.setInputData(data)
.build()
}
}
}
This is what my Worker looks like:
class TestWorker : Worker() {
companion object {
private const val TAG = "TestWorker"
private const val MESSAGE_DEFAULT = "Default"
const val KEY_MESSAGE = "KEY_MESSAGE"
}
override fun doWork(): Result {
val message = inputData.getString(KEY_MESSAGE, MESSAGE_DEFAULT)
val random = Random()
val time = 500L + random.nextInt(300)
Log.d(TAG, "Before. $message")
Thread.sleep(time)
Log.d(TAG, "After. $message")
return Result.SUCCESS
}
}
su...@google.com <su...@google.com> #10
hu...@gmail.com <hu...@gmail.com> #11
hu...@gmail.com <hu...@gmail.com> #12
For some reason it rarely crashes on AVD Emulator(Api 27), but 100% crashes on Genymotion Api 26 and my Xiaomi Redmi 7.1.2
You can try both Activities.
su...@google.com <su...@google.com>
su...@google.com <su...@google.com> #13
hu...@gmail.com <hu...@gmail.com> #14
hu...@gmail.com <hu...@gmail.com> #15
su...@google.com <su...@google.com> #16
hu...@gmail.com <hu...@gmail.com> #17
hu...@gmail.com <hu...@gmail.com> #18
ra...@google.com <ra...@google.com> #19
I am marking this as not reproducible.
hu...@gmail.com <hu...@gmail.com> #20
hu...@gmail.com <hu...@gmail.com> #21
ra...@google.com <ra...@google.com>
ne...@gmail.com <ne...@gmail.com> #22
Just for my understanding, should we be able to enqueue more than ~100 WorkRequest ?
su...@google.com <su...@google.com> #23
ra...@google.com <ra...@google.com> #25
al...@gmail.com <al...@gmail.com> #26
jo...@gmail.com <jo...@gmail.com> #27
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1691)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:158)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:42)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(DT:126)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(DT:95)
at androidx.work.impl.Schedulers.schedule(DT:99)
at androidx.work.impl.WorkerWrapper$1.run(DT:263)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
su...@google.com <su...@google.com> #28
Finally, if you can turn on verbose logging through the Configuration options, please send us the logcat using that.
al...@gmail.com <al...@gmail.com> #29
Here's the crash log
08-31 17:31:19.892 9930-9985/com.example.agupta15.tryouts E/AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
Process: com.example.agupta15.tryouts, PID: 9930
java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1692)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:158)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:42)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:126)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:95)
at androidx.work.impl.Schedulers.schedule(Schedulers.java:99)
at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:114)
at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
08-31 17:31:19.893 9930-9930/com.example.agupta15.tryouts D/status worker: id f5c workstatus state = ENQUEUED
08-31 17:31:19.893 9930-9930/com.example.agupta15.tryouts D/WorkManagerUtils: Schedule for Worker Class: Class Job Id: 100100
08-31 17:31:20.016 9930-9993/com.example.agupta15.tryouts E/WorkerWrapper: Didn't find WorkSpec for id 7f9fdb71-1c34-41e0-b012-97be46ecba85
08-31 17:31:20.020 9930-10011/com.example.agupta15.tryouts E/WorkerWrapper: Didn't find WorkSpec for id 6fdcb2ea-1f3c-4238-b175-15c4c4d80ec6
Please ignore the D/ logs (they are my own for debugging)
ra...@google.com <ra...@google.com> #30
Also are you changing the default WorkManager Configuration ? Can you please send us a code snippet ?
[Deleted User] <[Deleted User]> #31
mi...@sesma.eu <mi...@sesma.eu> #32
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:2013)
at android.os.Parcel.readException(Parcel.java:1951)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
Device Mi A1 with Android 8.1.0. WorkManager 1.0.0-alpha06
This is the code:
val workers = assets.map { assetModel ->
val data = Data.Builder()
.putString(ASSET_UUID, assetModel.uuid)
.putString(ASSET_URL, assetModel.url)
.putString(ASSET_VERSION, assetModel.version.toString())
.build()
OneTimeWorkRequest.Builder(AssetDownloadWorker::class.java)
.setInputData(data)
.build()
}
val continuation = workManager?.beginUniqueWork(
DOWNLOAD_WORK_NAME + mainUuid,
ExistingWorkPolicy.KEEP,
workers.toList())
su...@google.com <su...@google.com> #33
al...@gmail.com <al...@gmail.com> #34
[Deleted User] <[Deleted User]> #35
We don't know exactly how to reproduce this error but we see in crashlytics that two users are getting this issue lots of times. The date we have about this users and crashes:
User 1, 11 crashes: Android 7.1.1 Nubia NX591J
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1692)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:158)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:42)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:126)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:95)
at androidx.work.impl.Schedulers.schedule(Schedulers.java:99)
at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:114)
at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
User 2, 17 crashes: Android 7.0 Asus X008D
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1691)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:158)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:42)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:126)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:95)
at androidx.work.impl.Schedulers.schedule(Schedulers.java:99)
at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:114)
at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
ra...@google.com <ra...@google.com> #36
cr...@supercomputo.mx <cr...@supercomputo.mx> #37
This is not still happening on version :1.0.0-alpha09
te...@gmail.com <te...@gmail.com> #38
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1967)
at android.os.Parcel.readException(Parcel.java:1905)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(SystemJobScheduler.java:148)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(SystemJobScheduler.java:117)
at androidx.work.impl.Schedulers.schedule(Schedulers.java:99)
at androidx.work.impl.utils.EnqueueRunnable.scheduleWorkInBackground(EnqueueRunnable.java:114)
at androidx.work.impl.utils.EnqueueRunnable.run(EnqueueRunnable.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
te...@gmail.com <te...@gmail.com> #39
class App : MultiDexApplication() {
override fun onCreate() {
super.onCreate()
Job.schedule()
}
}
class Job(ctx: Context, params: WorkerParameters) : Worker(ctx, params) {
override fun doWork(): Worker.Result {
Log.d("-------------------Job is done!--------------------")
return Result.SUCCESS
}
companion object {
private const val TAG = "my_job"
fun schedule() {
val workManager = WorkManager.getInstance()
val work = PeriodicWorkRequest.Builder(Job::class.java, 1, DAYS).addTag(TAG).build()
workManager.enqueueUniquePeriodicWork(TAG, KEEP, work)
}
}
}
mi...@sesma.eu <mi...@sesma.eu> #40
te...@gmail.com <te...@gmail.com> #41
so...@gmail.com <so...@gmail.com> #42
ad...@gmail.com <ad...@gmail.com> #43
I'm removing WorkManager from our project and getting back to JobScheduler.
I can't believe that Google is not able to fix a base/core issue in this library for 11 versions straight, it is totally unusable with this bug.
Is there a way we can raise this ticket to someone more competent that is able to solve this problem???
Such a shame Google...
ra...@google.com <ra...@google.com> #44
ad...@gmail.com <ad...@gmail.com> #45
On 50K users using the app (with alpha11 library), we see that around 0.1% (50) of them have these crashes. It only happens on Android version 7 and 8.
We had a bigger crash rate before upgrading to alpha11, but the bug is still happening.
The only traces I have are these from Fabric:
Android 7
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1701)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:158)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:42)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(Unknown Source:148)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(Unknown Source:117)
at androidx.work.impl.Schedulers.schedule(Unknown Source:99)
at androidx.work.impl.WorkManagerImpl.rescheduleEligibleWork(Unknown Source:550)
at androidx.work.impl.utils.ForceStopRunnable.run(Unknown Source:74)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Android 7
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1691)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:158)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:42)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(Unknown Source:148)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(Unknown Source:117)
at androidx.work.impl.Schedulers.schedule(Unknown Source:99)
at androidx.work.impl.WorkManagerImpl.rescheduleEligibleWork(Unknown Source:550)
at androidx.work.impl.utils.ForceStopRunnable.run(Unknown Source:74)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
Android 8
Fatal Exception: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
at android.os.Parcel.readException(Parcel.java:1975)
at android.os.Parcel.readException(Parcel.java:1913)
at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:180)
at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal(Unknown Source:148)
at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule(Unknown Source:117)
at androidx.work.impl.Schedulers.schedule(Unknown Source:99)
at androidx.work.impl.WorkManagerImpl.rescheduleEligibleWork(Unknown Source:550)
at androidx.work.impl.utils.ForceStopRunnable.run(Unknown Source:74)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
It is happening on a wide range of devices (some of them):
Samsung Galaxy S7 (herolte),
Samsung Galaxy S7 (heroltebmc), Android 7.0
Samsung Galaxy Note5 (noblelte), Android 7.0
Samsung Galaxy S6 (zeroflte), Android 7.0
Samsung Galaxy S7 edge (hero2lte), Android 8.0
Motorola Moto G (5th Gen) (cedric), Android 8.1
Motorola Moto G(4) Plus (athene_f), Android 7.0
LGE V20 (elsa), Android 8.0
LGE LG K20 (lv517n), Android 7.0
dream2qltesq, Android 7.0
Huawei 荣耀畅玩 6X (HWBLN-H), Android 7.0
Sony Xperia Z5 (SO-01H), Android 7.0
Sony Xperia XZ Premium (SO-04J), Android 8.0
ra...@google.com <ra...@google.com> #46
You might want to push an update on the next version of your app, where you can cancelAllWork(), and reschedule all the Workers you need.
ad...@gmail.com <ad...@gmail.com> #47
ra...@google.com <ra...@google.com> #48
That way you are guaranteed to start from a clean slate, and then you can reschedule your work. Also, are you using a custom configuration when instantiating WorkManager ?
ad...@gmail.com <ad...@gmail.com> #49
Here is the code:
WorkManager.getInstance().cancelAllWorkByTag(NotificationWorker.TAG);
PeriodicWorkRequest.Builder notificationsWorkBuilder = new PeriodicWorkRequest.Builder(NotificationWorker.class, NOTIFICATIONS_PERIOD, TimeUnit.MILLISECONDS);
notificationsWorkBuilder.addTag(NotificationWorker.TAG);
PeriodicWorkRequest notificationWork = notificationsWorkBuilder.build();
WorkManager.getInstance().enqueueUniquePeriodicWork(NotificationWorker.TAG, ExistingPeriodicWorkPolicy.REPLACE, notificationWork);
ra...@google.com <ra...@google.com> #50
Just to ensure that you are starting from a clean slate I would also try and call
ad...@gmail.com <ad...@gmail.com> #51
ad...@gmail.com <ad...@gmail.com> #52
We recently launched an update that includes "androidx.work:work-runtime:2.0.1", and we used it to schedule all our tasks now, in a satisfactory way. I just want to inform, (as you can see in the images attached below), that this problem keeps happening sporadically.
Keep in mind that the number of users affected in our case is small, since the app has several million active users, but it also starts to be worrisome, since the number of errors generated by each user is high.
The errors mainly occur in Android 6 and 7, and sometimes in 8, but especially in Android 7.
I do not expose implementation details, since the documentation of this SDK has been thoroughly studied, and in case there was a bad implementation, the number of errors would be infinitely greater.
Greetings.
[Deleted User] <[Deleted User]> #53
ra...@google.com <ra...@google.com> #54
This bug report talks about this crash in the 1.x alpha era. So I just want to disambiguate the problem.
nf...@gmail.com <nf...@gmail.com> #55
Total crash count is raised drasticly, here we have stats for 40000 devices with 1.0.1 workmanager version: This issue has 46707 crashes affecting 347 users
su...@google.com <su...@google.com> #56
na...@mercadolibre.com <na...@mercadolibre.com> #57
We're using WorkManager#enqueue(OneTimeWorkRequest), instead of WorkManager#beginUniqueWork(OneTimeWorkRequest).
Upgrading to v2.x as you suggest forces us to migrate to Android X too. On v2.x I didn't see anything related in the changelog to justify the migration to Android X.. how can I be sure that migrating both Android X and work-runtime v2.x is gonna fix our issues?
Currently it's happening only in Android 7 (API 24), mainly in Motorola phones (70% Moto C Plus:
Thank you, regards!
ra...@google.com <ra...@google.com> #58
da...@gmail.com <da...@gmail.com> #59
ju...@gmail.com <ju...@gmail.com> #60
ra...@gmail.com <ra...@gmail.com> #61
Fatal Exception: java.lang.IllegalStateException
JobScheduler 100 job limit exceeded. We count 0 WorkManager jobs in JobScheduler; we have 1 tracked jobs in our DB; our Configuration limit is 20.
androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal (SystemJobScheduler.java:204)
androidx.work.impl.background.systemjob.SystemJobScheduler.schedule (SystemJobScheduler.java:132)
androidx.work.impl.Schedulers.schedule (Schedulers.java:108)
androidx.work.impl.utils.ForceStopRunnable.forceStopRunnable (ForceStopRunnable.java:176)
androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:102)
androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
java.lang.Thread.run (Thread.java:764)
Caused by java.lang.IllegalStateException
Apps may not schedule more than 100 distinct jobs
android.os.Parcel.createException (Parcel.java:1958)
android.os.Parcel.readException (Parcel.java:1918)
android.os.Parcel.readException (Parcel.java:1868)
android.app.job.IJobScheduler$Stub$Proxy.schedule (IJobScheduler.java:184)
android.app.JobSchedulerImpl.schedule (JobSchedulerImpl.java:44)
androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal (SystemJobScheduler.java:186)
androidx.work.impl.background.systemjob.SystemJobScheduler.schedule (SystemJobScheduler.java:132)
androidx.work.impl.Schedulers.schedule (Schedulers.java:108)
androidx.work.impl.utils.ForceStopRunnable.forceStopRunnable (ForceStopRunnable.java:176)
androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:102)
androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
java.lang.Thread.run (Thread.java:764)
ra...@google.com <ra...@google.com> #62
JobScheduler 100 job limit exceeded. We count 0 WorkManager jobs in JobScheduler; we have 1 tracked jobs in our DB; our Configuration limit is 20.
You have other libraries in your app scheduling jobs. This is not WorkManager's fault.
kr...@gmail.com <kr...@gmail.com> #63
In my Samsung Galaxy M30S which recently crashed when checking the rescue log found the same code which is mentioned under more than 100 distinct jobs..... Unfortunately all Samsung service centres asked me to erase 64 GB data and reset phone to resolve. Is there no other solution for the same ?
ap...@gmail.com <ap...@gmail.com> #64
implementation "androidx.work:work-runtime-ktx:2.7.1"
Fatal Exception: java.lang.IllegalStateException JobScheduler 100 job limit exceeded. We count 0 WorkManager jobs in JobScheduler; we have 1 tracked jobs in our DB; our Configuration limit is 20.
Description
Version used: 1.0.0-alpha04
Devices/Android versions reproduced on: AVD Pixel 2 27
Our setup:
`
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:enabled="false"
tools:ignore="ExportedContentProvider" />
`
`
val wmConfig = Configuration
.Builder()
.setMaxSchedulerLimit(95)
.build()
WorkManager.initialize(ctx, wmConfig)
`
It's not always crashes.
We are scheduling multiple jobs chains. Each chain is a tree where we utilize input/outputs, where the last job depends on all the leafs of the tree. We build this tree only once, no recheduling inside Workers.