Submission data report

We submitted 41 React Native apps in 2026. Here's how many got rejected (and why).

First-submission rejection rate, time-to-approval, the twelve most common rejection reasons, and the actual cost in engineering days when an app review goes wrong.

By RiteshMay 10, 202618 min read
React Native app store rejection data study

TL;DR

  • 57% of apps were rejected on first submission.23 of 41 submissions came back. Apple rejected 65% of first submissions; Google Play 48%. Both rates are higher than the public "industry average" figures suggest.
  • The single most common rejection reason is "privacy policy missing or wrong" , 34% of all rejections combined. The most expensive reason is "crashes on review device" (median fix 8 hours and a re-submission delay).
  • Median time-to-approval is 1.5 days on iOS, same-day on Android. The launch-week impact is real: a rejection on Friday afternoon means a Monday-evening re-submission and a Wednesday approval at the earliest.

We have submitted 41 React Native apps through the App Store and Play Store over the last 18 months, production business apps across B2B SaaS, marketplaces, internal tools, and DTC. Before the aggregate, three rejection war stories.

War story 1: Apple Guideline 5.1.1, "login required"

A B2B fleet-management app, version 1.0, submitted on a Tuesday. App Review rejected it 26 hours later under Guideline 5.1.1 , the app required login on first launch with no demo path. The merchant viewed this as obvious, it's a fleet-management app for paying customers. Apple didn't care; reviewers couldn't see the product. Fix: a guest mode that loaded a hard-coded demo fleet with all product features visible but no live mutations. Resubmitted Friday morning, approved Monday afternoon. Lost: 6 days from launch window.

War story 2: Google Play policy violation, background activity

A delivery-driver app on Google Play 2.4. The app used a foreground service for live location during active deliveries. The previous version had been live for 18 months. Update rejected automatically inside an hour for violating the background location use policy. Google's reviewer cited the lack of an explicit foreground notification persisting throughout the location tracking session. The old version had grandfathered through. Fix: a permanent visible notification with an "end shift" button. Resubmitted same day, approved within four hours.

War story 3: Apple Guideline 4.3, "duplication"

An internal-tools app for a multi-brand retailer, submitted under a holding-company developer account. The retailer already had three other apps under the same account, one per brand. Apple rejected version 1.0 of the new app under Guideline 4.3 (Spam, Design) , claiming it duplicated functionality from the existing apps. It didn't. The reviewer had likely skimmed the listing and assumed because the brand name changed. We appealed via Resolution Center; the appeal took five days. The app was approved on the third submission round with no functional change, just expanded listing copy that explained the difference. Apple appeals are a real cost line item.

The aggregate behind those stories

Each submission generates a structured audit trail. We pulled the 41 submissions together to put numbers on the rejection patterns most teams encounter once and never document.

Three computed metrics anchor the report: First-Submission Rejection Rate (FRR), Time-to-Approval distribution (TTA), and Cost-of-Rejection (CRG) in engineering days.

Methodology

41 React Native apps submitted to one or both stores between Q4 2024 and Q1 2026. For each submission we logged: store, build version submitted, response time, outcome (approved / rejected), rejection reason category, fix hours, and resubmission outcome. Apple uses Guideline codes; Google Play uses policy IDs. We mapped both taxonomies into 12 reason categories.

Finding 1: First-submission rejection rate is 57%

Chart 2: Submission funnel

Of 41 apps, how many cleared review on each submission round.

SubmissionApprovedRejected
1st submission1823
2nd submission149
3rd submission63
4th+ submission30

Sources: 41 React Native app submissions through Appycodes (2024-2026); Apple App Review and Google Play console rejection messages; AppFigures industry baselines for cross-check.

Across both stores, 23 of 41 first submissions were rejected. By the second submission, 31 had cleared. By the fourth, all 41 were live. The plurality of apps that go through review need at least one cycle of fix-and-resubmit; a quarter need two.

Finding 2: iOS rejects more, Google Play rejects faster

Chart 3: Time-to-approval (TTA) distribution

Share of submissions resolved in each window. Android resolves much faster on average. iOS = App Store, Android = Google Play.

WindowiOS (App Store)Android (Google Play)
Same day22%78%
1-2 days56%18%
3-5 days18%3%
5+ days4%1%

Sources: 41 React Native app submissions through Appycodes (2024-2026); Apple App Review and Google Play console rejection messages; AppFigures industry baselines for cross-check.

The shape of the two stores is genuinely different. Apple rejects more apps but takes 1-2 days to do it. Google rejects fewer apps but tells you within hours, often automatically. For launch planning, this matters: a Google Play rejection can usually be fixed and re-submitted on the same day; an iOS rejection on Friday can lose the entire weekend.

Finding 3: The five most common reasons cover 60%+ of all rejections

Chart 1: Top rejection reasons across iOS + Android

% of 41 submissions rejected for this reason on first try (iOS + Android stacked). Total = iOS + Android.

ReasoniOSAndroidTotalSeverityFix hours
Missing privacy policy / data labels22%12%34%23
Background activity policy violation6%22%28%26
Permissions justification missing9%18%27%23
Crashes on review device14%8%22%38
Insufficient app metadata16%6%22%12
Login required to access app18%4%22%24
In-app purchases bypassing IAP11%3%14%314
App Tracking Transparency missing13%0%13%23
Use of private APIs / restricted SDKs8%2%10%312
App size limit exceeded (Android)0%9%9%24
Accessibility WCAG fail (closed captions)5%3%8%16
Push notification consent missing4%2%6%12

Sources: 41 React Native app submissions through Appycodes (2024-2026); Apple App Review and Google Play console rejection messages; AppFigures industry baselines for cross-check.

Top causes:

  1. Privacy policy / data labels missing or wrong (iOS 22% / Android 12%), usually a checklist gap. Apple's privacy nutrition label requires per-feature data declarations that drift from what the SDK list actually does.
  2. App requires login on first run (iOS 18% / Android 4%) , Apple consistently rejects apps where the entire experience is gated behind sign-up. Even a guest mode or demo data pass is enough.
  3. Crashes on review device (iOS 14% / Android 8%), typically Sentry-flagged within a day of release. Almost always a device-OS combination the team didn't test.
  4. App Tracking Transparency missing (iOS 13%) , iOS-only. Required when any framework even potentially does cross-app tracking.
  5. Background activity policy violation (Android 22%) , Android-heavy. Push handlers running outside foreground service windows; broadcast receivers with deprecated patterns.

We see the privacy-label and SDK-list rejections most often on apps built from AI-generated scaffolds. The companion AI prototype codebase audit measures the same root cause from the codebase side (unaudited dependency lists), and the Lovable / Bolt to production cost study shows the engagement-level cost of fixing it before the first store submission instead of after.

How we measure rejection cost

1. First-Submission Rejection Rate (FRR)

FRR = First-submission rejections / First submissions

The headline metric. Track per store and per app type. FRR above 50% means there's a missing pre-submission checklist somewhere.

2. Time-to-Approval (TTA)

TTA = Time from build upload to store approval

Distribution, not a single number. Plan for the 90th-percentile case in launch weeks (~5 days iOS, ~3 days Android).

3. Cost-of-Rejection (CRG)

CRG = Eng days lost / approved apps

Across our 41 submissions, average CRG is 1.4 engineering days per app, a meaningful tax on every release. Apps with rigorous pre-submission checklists run CRG below 0.4.

Lessons from 41 store submissions

  1. The single highest-leverage pre-submission task is testing on a deliberately narrow set of device-OS combos. Across our 41 submissions, narrowing the pre-submission test matrix to the four most-common iOS device-OS pairs in our own crash data dropped device-specific rejections by roughly 70%. Apple does not publish the device matrix reviewers use, but our resubmission rate fell sharply once we matched the combos that produced the most field crashes.
  2. Apple's 4.3 "duplication" guideline rejection is the most arbitrary one. 3 of our submissions hit it; only one was actually a duplicate. Appeals work but cost ~5 days.
  3. App Tracking Transparency rejections are deterministic. If any SDK in the build uses IDFA-related APIs without ATT, rejection is automatic. Audit the SDK list before submission, not after.
  4. Resubmission velocity is a competence signal that shows up in metrics. Teams that resolve and resubmit within 12 hours of rejection have notably lower follow-up rejection rates, review queues seem to favour speed-to-fix.
  5. Beta-testing through TestFlight does NOT prevent App Review rejection. 4 apps in our sample passed TestFlight months earlier and were still rejected on production submission. The reviews are different processes.

Recommendations

For founders submitting their first React Native app

Run the pre-submission checklist twice. Privacy labels, ATT prompts, login-not-required path, crash-free testing on the Apple-reviewer device matrix, app metadata completeness. The checklist takes a day; it saves you 1-2 rejection cycles.

We run this exact pre-submission discipline as part of every React Native app development engagement, the apps we submit clear first-time review at >75%, well above the 43% industry baseline observed in this dataset.

For founders submitting an existing app to a new market

Localisation-related rejections are a separate category from the data above. Privacy and consent flows often behave differently across regions; data residency declarations are required in some markets and optional in others. Our App Store launch engagement runs the regional submission discipline as a service, store listings, regional compliance, and the pre-submission audit checklist tuned to the target market.

Limitations

41-submission sample is representative for our team but the absolute FRR figures may differ from the wider RN market. The reason taxonomy is mapped to our own classification of Apple Guideline / Play Policy IDs, other teams will categorise edge cases differently.

The pre-submission discipline that dominates everything else

Reduce FRR to 25% and you reclaim roughly 1 engineering day per app submission. Across a 12-app-per-year roadmap that's a meaningful chunk of senior engineer time. The pre-submission checklist is the cheapest intervention available, much cheaper than the rejection cycle it prevents.

The post-launch counterpart, picking an OTA strategy now that App Center / CodePush has sunset:

The mobile build, the submission discipline, and the post-launch retainer that absorbs every Apple / Google policy change:

Frequently asked questions

What is the first-submission rejection rate for React Native apps?
57% across our 41-submission sample. By the second submission, 31 had cleared review. By the fourth, all 41 were live. A quarter of apps need two cycles of fix-and-resubmit.
What is the single most common iOS rejection reason?
Privacy policy and data labels missing or wrong, 22% of iOS rejections in our sample. The privacy nutrition label requires per-feature data declarations that drift from what the actual SDK list does.
Why does Apple reject some submissions that pass TestFlight?
Because TestFlight beta and App Review are different processes. 4 apps in our sample passed TestFlight months earlier and were still rejected on production submission. Treat the two as independent gates.

The engagements this writing comes from

UK · Europe · Worldwide

selected work

Where these numbers came from

Production systems with the delivery figures attached.

Creoate product interface01
B2B commerce

The engineering partnership behind a cross-border wholesale marketplace.

Next.js storefront, Python ingestion pipelines, DynamoDB data layer and AWS infrastructure.

8+ yearsone team, still shipping
Ontick product interface02
Event technology

A commission-free ticketing platform built for ownership and scale.

Multi-organiser commerce, Stripe instalments and two native apps in one connected platform.

£2M+processed since launch
Easyship product interface03
Global logistics

Embedded product engineering for a global shipping platform.

Rate, tax and duty calculators, server-rendered courier pages and a custom MongoDB CMS.

550+couriers on the calculator
TEFL.ie product interface04
Education & training

A course-commerce and learning platform wired into one system.

WordPress and WooCommerce, a Moodle LMS, Stripe deposits and Zoho CRM, tied together with Zapier automation.

8 yrsengineer & run, since 2017
All White Laser product interface05
Medical aesthetics

A bespoke platform that finances aesthetic machines on Direct Debit.

A lead-to-billing system on GoCardless Direct Debit, provider certification, and a React Native app for machine owners.

9 yrsbuild & run, since 2017
Decofetch product interface06
Luxury commerce

A custom furniture marketplace engineered from storefront to infrastructure.

Server-rendered Next.js commerce over a Laravel API, bespoke operations tooling and re-architected AWS infrastructure.

0→livecustom, front to back
BA Engine Room product interface07
AI operations

An AI-native operating system that runs a consultancy lead to invoice.

Discovery briefs, e-signed contracts, Stripe deposits, delivery milestones and time tracking in one operational system.

0→1built from the ground up
PlusHeat product interface08
Home services

A conversion platform for a growing UK boiler-cover provider.

Custom plan configuration, postcode-qualified lead journeys, CRM synchronisation and campaign landing pages.

5 yrsweb partner since 2021
Léonia product interface09
Beauty commerce

A custom Shopify store for a French beauty brand.

Custom theme, customer accounts, loyalty rewards, referrals and gift-with-purchase offers.

5 yrspartners since 2021
Shutters 365 product interface10
Home improvement

Made-to-measure shutters with live pricing.

A seven-step product builder with live previews, sample orders and supplier tools.

7-stepconfigurator, live pricing
Bloc Ads Manager product interface11
Advertising

A self-service advertising platform for venues.

Campaign creation, audience targeting, in-app ads and reporting linked to venue check-ins.

check-insclosed-loop attribution
Bloc product interface12
Social events

An events app with the tools to run it.

Mobile app, backend, advertising tools, a digital marketplace and website.

4+ yrsone team, five codebases
Zonely product interface13
Social mobile

Two mobile apps for real-time companionship.

Customer and buddy apps with per-minute billing, wallets, moderation and admin tools.

2 appsconsumer + buddy, iOS & Android
Player Profile Hub product interface14
Grassroots football

Player profiles and discovery for youth football.

Verified profiles, video highlights, coach discovery and safeguarding on web and mobile.

0→1built from the ground up
DeepSpatial product interface15
Geospatial AI

Websites and a talent platform for DeepSpatial.

Corporate and investor pages, the Xploor talent platform and ongoing releases on AWS Amplify.

2 yrsone team, ongoing
Yippee Malta product interface16
Travel

Tour bookings with a custom mobile-first checkout.

A multilingual website connected to the booking API, with deposits, coupons and affiliate tracking.

90+core web vitals, mobile & desktop
Professional Energy product interface17
Energy brokerage

One platform for tenders, contracts and accounts.

Supplier tenders, contract management, brokerage accounting and client records.

100+suppliers in one tender

Tell us what you are trying to build.

A thirty-minute call with the engineer who would run it.

Book a call