The short answer
Alarms fail for four broad reasons: the sound cannot be heard (volume or Bluetooth routing), the alarm was never scheduled correctly (wrong AM/PM or an unsaved edit), the system suppressed it (Focus or battery optimisation), or the app scheduling it was killed by the operating system.
Work out which kind of failure you have
The fix depends entirely on the category, and they are easy to tell apart if you check the morning after.
- The alarm shows as triggered but you heard nothing → an audio problem. Check ringer volume, Bluetooth routing, and whether the alarm sound is set to None or an unavailable song.
- The alarm never appears as triggered → a scheduling problem. Check AM/PM, the repeat days, and whether the alarm was actually saved.
- It works some days and not others → a suppression problem. Check Focus modes, schedules, and battery optimisation on Android.
- It works when the app is open and not when it is closed → the app is scheduling alarms in its own process, which the system is killing.
On Android specifically
Android adds one large failure mode that iPhone does not: aggressive battery optimisation. Manufacturers layer their own process management on top of Android, and several are notorious for killing background work regardless of what the app asks for.
- 1Open Settings → Apps → your alarm app → Battery, and set it to Unrestricted.
- 2On Samsung, also check Settings → Battery and device care → Background usage limits, and make sure the app is not in Sleeping apps or Deep sleeping apps.
- 3On Xiaomi, Redmi and POCO, open Settings → Apps → Manage apps → your app → Autostart and enable it, then set Battery saver to No restrictions.
- 4Grant the Alarms & reminders permission if prompted. On recent Android versions, exact alarms require it explicitly.
The design question underneath
Most of the list above exists because an app asked the operating system for a favour and the system declined. An alarm should not be a favour. It should be a registered, system-level commitment that survives the app being closed, the phone restarting, and the battery saver deciding the app is idle.
That is how Roosta schedules alarms, and it is why the app being swiped away does not cancel one. It is not a claim about caring more — it is a difference in where the schedule lives.