TGViewer
Android - Reddit Android - Reddit @reddit_android · 1.29K subscribers
Post #34854 141
Severe Battery Drain & Overheating on One UI 9 (Galaxy S25 FE). Root Cause Found: Infinite Loop in SystemJobService (WhatsApp SyncManager)

PSA: I am posting this root cause analysis to document a severe logic flaw in WhatsApp's handling of Android's WorkManager and SystemJobService background tasks. While I am open to advanced ADB workarounds, I am primarily sharing these JobScheduler dumps and battery metrics for community awareness and developer visibility, as standard tier-1 tech support (clearing cache, reinstalling) cannot fix this persisted loop.

Device: Samsung S25 FE

OneUI 8.5 - August Security Patch

There is a severe logic bug in WhatsApp's background task handling on the current One UI build. Leaving background data enabled triggers an infinite retry loop inside androidx.work.impl.background.systemjob.SystemJobService, locking the CPU and causing massive battery drain and thermal throttling. The device overheats while completely idle.

Using Device Care and Battery Historian, WhatsApp consistently shows absurd metrics for a single morning of idle time: over 14h 26m of background execution time, 3h 22m of Wakelocks, 2h 6m of active CPU time, and 200,907 mobile data packets transferred in the background.

By analyzing the Android JobScheduler dump via ADB (adb shell dumpsys jobscheduler com.whatsapp), I was able to pinpoint the cause: the system is trying to execute a persisted periodic contact sync job, failing internally, and immediately retrying.

The following job parameters and constraints repeat constantly in the dumpsys output:

JobInfo:

Service: android/com.android.server.content.SyncJobService

PERIODIC: interval=+1h0m0s0ms flex=+5m0s0ms

PERSISTED

Priority: 300 [DEFAULT\]

...

Required constraints: STORAGE_NOT_LOW TIMING_DELAY DEADLINE CONNECTIVITY FLEXIBILITY UID_NOT_RESTRICTED [0xd0300008\]

...

Unsatisfied constraints: TIMING_DELAY DEADLINE [0xc0000000\]

After digging deeper into how Android's WorkManager and SyncJobService handle this (@SyncManager@com.android.contacts/com.whatsapp:android), it is clear this is an issue rooted in how WhatsApp handles internal exceptions during background syncs.

Because the job is flagged as PERSISTED, it writes itself to the androidx.work.workdb SQLite database. This means the corrupted job queue survives device reboots and app force-closes.

The fatal flaw is in the higher-level exception handling between WhatsApp and Android's WorkManager. When the sync job fails internally, WhatsApp returns a Result.retry(). Because the OS detects that the CONNECTIVITY constraint is technically met, it fails to apply standard exponential backoff policies. Instead of delaying the retry, it immediately fires the job again in an unconditional infinite loop, waking the CPU up hundreds of times and keeping the modem active (thus the 200k+ data packets).

https://redd.it/1weib1p
@reddit_android
Reddit From the Android community on Reddit Explore this post and more from the Android community
More from @reddit_android
  1. Sep 26, 2026Component Cost Shock Could Wipe Out More Than 230 Million Sub-$200 Smartphone Shipments by…
  2. Sep 25, 2026Pixel 11 starts testing ‘Call for Me’ to have Gemini phone on your behalf https://9to5goog…
  3. Sep 25, 2026Honor X9e Pro arrives with 11,000mAh battery and Snapdragon 6 Gen 5 chip https://www.gsmar…
  4. Sep 24, 2026Samsung LPDDR6: Advancing Low-Power Memory for AI with Industry-First Validation on Qualco…
  5. Sep 24, 2026F-Droid 2.0: A New Chapter for Android Freedom | F-Droid - Free and Open Source Android Ap…
  6. Sep 24, 2026what is your favorite default wallpaper? Mine was the Oneplus 7 pro one. https://www.andro…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →