Reliability
Why your Android alarm didn't go off
Last updated 15 September 2026
The short answer: on stock Android it is usually Doze or a missing exact alarm permission. On a Xiaomi, OPPO, Vivo, OnePlus, Huawei or Samsung phone it is usually the manufacturer's own battery saver, which closes apps overnight regardless of what Android has been told to allow. Those need different fixes, and the second one is not something an app can fix by itself.
Work out which one it was
All of these look identical from the outside. The alarm simply does not ring, or it rings late. Work down them in order, because the early ones are far more common and take seconds to rule out.
- The boring causes, which account for more missed alarms than everything below put together.
- Doze, Android's own overnight power saving.
- The manufacturer's battery saver, the biggest cause on anything that is not a Pixel.
- Autostart, which decides whether the app may start at all.
- Force stop, and swiping the app away.
- A reboot, which clears every alarm on the phone.
- Exact alarm permission, on Android 12 and newer.
1. The boring causes
Check these first. They are unglamorous and they are usually the answer.
- Do Not Disturb is set to silence alarms. This is the one that catches people out. Alarms play on an audio stream that silent mode does not touch, so a silent ringer is fine. But Do Not Disturb has its own alarms toggle, and with that off your alarm is muted by design. Settings, then Sound, then Do Not Disturb, then check what is allowed through.
- Alarm volume is a separate slider. Turning media volume up during the day does nothing for it. Press a volume key, open the full panel, and check the alarm slider specifically.
- A Bluetooth speaker or a pair of earbuds is still connected. Android will route the alarm to them, and you will sleep soundly through an alarm playing perfectly into a pair of headphones in a drawer.
- The alarm was set for the wrong day, or was never repeating. A one time alarm that has already fired is off.
2. Doze
Since Android 6, a phone left still, unplugged and screen off enters Doze. Background work gets batched into short maintenance windows and ordinary timers are deferred until the next one, which can be a long wait. The conditions Doze looks for are an exact description of a phone on a bedside table at four in the morning, so Doze is at its most aggressive during precisely the hours an alarm has to survive.
Android does provide a way out. An alarm registered as a genuine alarm clock is exempt from Doze and fires at the time it was set for, and the system puts it in the status bar and on the lock screen. An app that uses an ordinary background timer instead will drift, fire late, or not fire until you pick the phone up. You cannot inspect which one an app used, but the status bar is a decent tell: if the next alarm never appears there, it was not registered as an alarm clock.
You can also exempt an app from battery optimisation yourself. Settings, Apps, find the app, then Battery, then Unrestricted. On stock Android that is usually enough. On the phones in the next section it is not.
3. The manufacturer's battery saver
Xiaomi, Redmi, POCO, OPPO, realme, Vivo, iQOO, OnePlus, Huawei, Honor and Samsung all ship an extra power manager that sits on top of Android's and follows its own rules. It closes background apps on its own schedule and is largely unmoved by Android's unrestricted setting. This is the most common reason a third party alarm does not ring, and it is why the same app can be flawless on a Pixel and useless on a Redmi.
The setting has a different name on each one. Roughly:
- Xiaomi, Redmi, POCO (MIUI, HyperOS): Settings, Apps, Manage apps, pick the app, set Battery saver to No restrictions, and turn on Autostart. Then long press the app in Recents and tap the padlock so it is not cleared.
- OPPO, realme (ColorOS): Settings, Battery, App battery management, pick the app, then Allow background running and Allow auto launch.
- Vivo, iQOO (Funtouch, OriginOS): Settings, Battery, Background power consumption management, set the app to allow high background power consumption, and enable Auto start in the i Manager app.
- OnePlus (OxygenOS): Settings, Battery, Battery optimisation, set the app to Don't optimise, then turn off Deep optimisation or Sleep standby optimisation in the advanced battery settings.
- Samsung (One UI): Settings, Battery, Background usage limits. Make sure the app is not under Sleeping apps or Deep sleeping apps. Adding it to Never sleeping apps is the reliable move.
- Huawei, Honor (EMUI, MagicOS): Settings, Battery, App launch, switch the app from Manage automatically to Manage manually, and enable all three switches.
Menu paths move between versions, so treat those as the shape rather than the exact route. If you cannot find yours, dontkillmyapp.com keeps per manufacturer instructions current and rates how badly each vendor behaves.
4. Autostart
Autostart, called Auto launch on ColorOS, Auto start on Funtouch and Manage manually on EMUI, decides whether an app may start on its own at all. With it off, the app cannot put its alarms back after a reboot and often cannot wake up to ring one. There is no Android API for this screen, no permission to request, and no way for an app to read whether it is on, which is why a well built alarm app walks you to the page instead of quietly assuming it is fine.
5. Force stop, and swiping the app away
Force stopping an app cancels every alarm it has registered, on every version of Android, and they do not come back until you open the app again. That is standard behaviour rather than a bug.
Swiping an app out of Recents is supposed to be different, and on stock Android it is. Several manufacturers treat a swipe as close to a force stop, which means tidying your Recents before bed can quietly cancel tomorrow's alarm. If your phone offers a padlock in Recents, use it.
6. A reboot
Every scheduled alarm on the phone is cleared when it restarts. Apps are expected to listen for the boot signal and set them all again, and most do. But if autostart is off, or the phone rebooted overnight for a system update and the app was never allowed to run again, nothing is re registered and the alarm is simply gone. An update installing itself at three in the morning is a common and completely invisible cause of one missed day.
7. Exact alarm permission
Android 12 introduced a permission for alarms that fire at an exact time. Android 13 added a version reserved for apps whose main job is alarms, and Android 14 tightened when the general one is granted automatically. The upshot is that on a recent phone an app can end up without permission to be exact, at which point its alarms become approximate and drift by minutes or more.
Check it under Settings, Apps, pick the app, then Alarms and reminders, or search your settings for "alarms and reminders". It should be allowed.
Test it tonight, rather than finding out on a workday
Changing any of this tells you nothing until an alarm has actually survived a night. A real test looks like this:
- Set an alarm for a few hours away, ideally overnight.
- Unplug the phone. Doze does not engage while charging, so a test on a charger proves nothing.
- Leave it still and untouched. Picking it up resets the idle timer and voids the test.
- Do not tidy Recents before bed.
- If it rings on time, the settings took. If it rings late, it was Doze or the vendor power manager. If it never rings at all, it was autostart, a force stop or a reboot.
What a well built alarm app should be doing about this
Some of this an app can carry for you, and an alarm app that does not is worth replacing:
- Register alarms as genuine alarm clocks, so Doze cannot defer them, rather than as background timers.
- Set a second backup alarm shortly behind the first, so a delay on one is covered by the other.
- Put every alarm back after a reboot.
- Play on the alarm stream and take audio focus, so neither silent mode nor whatever else is playing can mute it.
- Detect the manufacturer and open the right settings page, rather than printing generic advice and hoping.
- Keep a log of when each alarm was scheduled, fired or missed, so a missed morning can be explained instead of argued about.
Why this page exists. We make Kibble, an Android alarm clock with no snooze button, and every item on that last list is in it. It is not on Google Play yet. If you want to know when it is, there is a waitlist on the front page, and it is one email on one day. Everything above works whatever alarm app you use, and you should not need ours to fix your mornings.
Kibble