Skip to content
← Blog
Technicalby Goodspeed Team

Top App Store Rejection Reasons and How to Avoid Them

The most common reasons apps get rejected from the App Store and Google Play, with a pre-submission audit checklist based on real rejection experiences.

## The Rejection Email Nobody Wants

You've spent weeks building your app. You submit it to the App Store, sit back, and wait. Two days later, the email arrives: "Your app has been rejected."

It happens to everyone. Apple rejects roughly 40% of first-time submissions. Google Play is more lenient but still catches common issues. The good news: most rejections are for fixable, predictable reasons.

Here are the top rejection reasons and how to avoid each one.

## 1. Crashes and Bugs

**How common:** The #1 rejection reason, accounting for roughly 30% of rejections.

Apple's review team tests your app on current-generation devices. If it crashes during review, it's an instant rejection. They won't debug it for you. You'll get a vague description like "the app crashed when we tapped the profile button."

### How to Avoid It

Test on real devices, not just simulators. Specifically:

- **Null guards on all database values.** Supabase returns `null` for unscored numeric columns. `.toFixed()` on null crashes. Use `(value ?? 0).toFixed(1)`. - **Validate all navigation routes.** Every `router.push()` must point to an actual screen file. A typo in a route string crashes the app. - **SafeAreaView from the right import.** Use `react-native-safe-area-context`, not the built-in React Native version. The built-in version doesn't handle Dynamic Island or notch on modern iPhones. - **Handle empty states.** What happens when the user has no data? No notifications? No internet? Each of these is a state your app must handle without crashing.

Run through every screen in your app before submission. Tap every button. Try edge cases: empty inputs, very long text, rapid taps, network disconnection.

## 2. Incomplete Information

**How common:** About 15% of rejections.

Apple requires:

- A working demo account (if your app requires login) - Clear app description - Accurate screenshots - Privacy policy URL that loads - Contact information

### How to Avoid It

When submitting, include demo credentials in the "Notes for Review" field. Make sure the account works and has sample data pre-loaded. A reviewer who can't log in will reject immediately.

Provide a phone number and email that you actually check. If Apple has questions during review, they'll reach out. Missing their follow-up extends the review by days.

## 3. Privacy Violations

**How common:** About 12% of rejections and growing every year.

Apple takes privacy seriously. Common violations:

- **Collecting data without disclosure.** If you track analytics, you must declare it in the App Privacy section of App Store Connect. - **Missing purpose strings.** Any permission request (camera, location, photos, notifications) needs a human-readable explanation. "This app needs your location" is not enough. "ThreadLift uses your location to show nearby community events" is better. - **No account deletion.** Since 2022, Apple requires the ability for users to delete their account and associated data from within the app. Not just deactivate. Delete. - **Tracking without ATT.** If you use advertising identifiers or cross-app tracking, you must show the App Tracking Transparency prompt before collecting any data.

### How to Avoid It

Fill out the privacy questionnaire honestly. Implement account deletion (a "Delete Account" button in settings that calls your backend to remove all user data). Write clear, specific purpose strings for every permission.

## 4. Design and User Interface Issues

**How common:** About 10% of rejections.

Apple has specific expectations:

- **No web views pretending to be native.** If your app is just a website wrapped in a web view, it will be rejected. The app must provide functionality beyond what a mobile website offers. - **Broken UI on different screen sizes.** Test on iPhone SE (small), iPhone 15 (standard), iPhone 15 Pro Max (large), and iPad if you support it. - **Incomplete or placeholder content.** "Lorem ipsum" or empty screens are rejection triggers. - **Non-standard gestures.** Users expect standard iOS navigation patterns. A custom swipe gesture that conflicts with the system back swipe will be flagged.

### How to Avoid It

Follow the Human Interface Guidelines for iOS and Material Design for Android. You don't need to follow them slavishly, but your app should feel native to each platform.

Remove all placeholder content. Every screen should have real or realistic data.

## 5. In-App Purchase Issues

**How common:** About 8% of rejections.

Apple enforces strict rules around purchases:

- **Digital goods must use In-App Purchase.** You can't use Stripe or PayPal for digital content, subscriptions, or premium features. Physical goods and services are exempt. - **Subscription terms must be clear.** Show the price, duration, and renewal terms before the purchase button. Don't hide auto-renewal in fine print. - **Restore purchases must work.** There must be a visible "Restore Purchases" button for users who reinstall or switch devices. - **Free trial terms must be explicit.** If you offer a free trial, clearly state when it converts to a paid subscription and at what price.

### How to Avoid It

Use [RevenueCat](/tech/revenuecat) or a similar service that handles Apple's requirements. Display subscription terms prominently on your paywall. Test the full purchase flow with sandbox accounts.

## 6. Guideline 4.3: Spam (Duplicate Apps)

**How common:** About 5% of rejections, but rising for AI-generated apps.

Apple rejects apps that are "simply a duplicate of other apps or are not useful." If your app looks like a template with minimal customization, it's at risk.

### How to Avoid It

Your app needs a clear value proposition. What does it do that existing apps don't? Make sure your app store description communicates this clearly. If you're building on a template (like we do), the generated screens, features, and content should be specific to your app's purpose.

## 7. Metadata Rejections

**How common:** About 5% of rejections.

- **Screenshots don't match the app.** If your screenshots show features that aren't in the submitted build, that's a rejection. - **Misleading descriptions.** Don't claim features you haven't built yet. - **Keyword stuffing.** Don't stuff the keyword field with irrelevant terms. - **Mentioning other platforms.** Don't say "also available on Android" in your iOS listing.

### How to Avoid It

Take screenshots from your actual production build. Write descriptions that accurately represent what's in the app today, not what's planned.

## The Pre-Submission Audit Checklist

Run through this before every submission:

**Stability:** - [ ] Tested on at least 2 real devices - [ ] No crashes in any user flow - [ ] All navigation routes validated - [ ] Empty states handled for every screen - [ ] Error states show user-friendly messages

**Privacy:** - [ ] Privacy policy hosted at a working URL - [ ] App Privacy questionnaire filled out - [ ] All permission purpose strings written - [ ] Account deletion implemented and tested - [ ] ATT prompt shown before tracking (if applicable)

**Purchases:** - [ ] Subscription terms displayed clearly - [ ] Restore purchases button visible and working - [ ] Sandbox purchase flow tested end to end - [ ] No external payment for digital goods

**Metadata:** - [ ] Screenshots match current build - [ ] Description is accurate and complete - [ ] Demo account credentials in review notes - [ ] Contact info is current

**UI:** - [ ] Works on smallest supported screen size - [ ] Works on largest supported screen size - [ ] No placeholder content - [ ] Dark mode supported (or at minimum, not broken)

## What to Do When You Get Rejected

Don't panic. Read the rejection reason carefully. Apple provides a resolution center where you can ask for clarification or appeal.

Most rejections take 1-3 days to fix and resubmit. The re-review is usually faster than the initial review.

If you disagree with the rejection (it happens), you can appeal through the Resolution Center. Be professional, reference the specific guideline, and explain why your app complies.

For more on getting your app ready for launch, check out our [launch checklist](/blog/app-launch-checklist) and [growth features](/features/growth).

Ready to build?

Score your first idea free. See the pipeline in action.