# App Review Guideline 2.5.4 rejection: every background mode is a promise > Rejected under 2.5.4 for a background mode the user cannot see being used. Why no local check catches it, and why a scheduled local notification is usually what you wanted instead. - Canonical page: https://obelisk.club/blog/app-review-guideline-2-5-4-background-modes-rejection - Author: Peter Zhang - Published: 2026-10-25 - Tags: app-review, app-store, guideline-2-5-4, background-modes, rejection, indie **Guideline 2.5.4** is about background services. When your app goes to the background it may only do things it declared and that the user can perceive: audio playback, location, VoIP, finishing a task, local notifications. We were rejected under it once, and the lesson is mostly about why you cannot see it coming. This is from our own submissions. ## Why nothing warns you A background mode takes effect the moment you tick it in Info.plist or Capabilities. It compiles, runs and passes tests. No tool tells you that "this declaration is not used by any user-visible feature". The only check is a reviewer going through your declarations and your actual behavior one by one. The classic way in: *"so the reminder still fires after the screen locks, tick a background mode."* It seems to work, but it is the wrong mechanism. You wanted the process to stay alive; what you needed was only to **tell the user at a future time**. ## What to do, in order 1. **List every background declaration** and next to each write the user-visible feature it serves. 2. **Replace "remind at a time" needs with a local notification** scheduled ahead for the trigger time. It does not depend on the process being alive. 3. **Remove the declaration only after** you have confirmed things work without it. If you delete the declaration first, the feature breaks, and the instinct is to put it back. ## One-minute check Open `UIBackgroundModes` and, for each entry, answer: *on which screen, after which action, does the user trigger this?* An entry you cannot answer for is your risk item. Then put the app in the background for half a minute and watch whether it is really doing that thing. A background capability is not insurance "just in case". Each one is a promise that will be checked. *These notes are from Obelisk Club's own submissions. Apple's wording changes; check the current App Review Guidelines and your own message.*