Errors and statuses
What that error or status actually means
App Store Connect statuses, Play release states and the error strings both stores return, translated into what went wrong and what to do about it.
- "Developer Rejected" means you rejected it, not Apple
Developer Rejected means someone on your team pulled the version out of review. Apple did not reject anything. How to withdraw on purpose, and how to resubmit.
- "In Review": what Apple is actually doing to your app
In Review means a reviewer has your build open. What happens during it, what you can and can't change, and what the possible outcomes are.
- "Invalid Binary": no reviewer, no message, and how to find the real reason
Invalid Binary is a processing failure, not a rejection. There is no Resolution Center message. Six places to look for the reason, in the order that finds it fastest.
- "No editable App Store version": why metadata and screenshot pushes fail
Screenshots and metadata attach to a version, and only some version states accept writes. Which states are editable, why pushes 409, and how to create an editable version.
- "Pending Developer Release": approved, not live, waiting on you
Pending Developer Release means Apple approved your version and it will not go live until you release it. How to release, and how to avoid the state entirely.
- "This Edit has been deleted": why Google Play edits expire mid-upload
Google Play edits are invalidated the moment anything else touches the app, including someone opening Play Console. Why it happens mid-upload and how to avoid it.
- "Waiting for Review": what it means and how long it lasts
Waiting for Review means your submission is queued and untouched. What moves it along, what doesn't, and what you can still change while you wait.
- App Store Connect statuses explained: every version state and what you can change in it
Every App Store version status, Waiting for Review, In Review, Metadata Rejected, Pending Developer Release, what each means and what you can still edit.
- Can I appeal an App Store rejection?
Yes, to the App Review Board, through Apple's contact form. When an appeal is worth filing, when it wastes a week, what to write, and what Apple never tells you.
- Can I change metadata while my app is in review?
Waiting for Review: some fields are editable. In Review: nothing is. Screenshots freeze the moment you submit. What Apple documents, and what actually cancels a review.
- Does replying in Resolution Center put you back at the end of the review queue?
Apple has never published how the review queue is ordered. What Apple does document about replying and resubmitting, what it doesn't, and how to plan around the gap.
- Google Play API 401 and 403: IAM is not Play Console permissions
Google Cloud IAM roles grant nothing in Play Console. Why the Play Developer API returns 401 and 403, which permissions you actually need, and per-track gotchas.
- Google Play release statuses: completed, inProgress, draft and halted
What completed, inProgress, draft and halted actually mean on a Play track, how the internal to production ladder works, and how to halt a staged rollout.
- How long does Google Play review take?
Google publishes no average review time. It publishes one figure: up to seven days or longer in exceptional cases. What that covers, and why new accounts wait longer.
- How to request an expedited App Store review
Apple's expedited review form, the two circumstances Apple names, what a request that gets granted looks like, and what abusing it costs you.
- How to withdraw an App Store submission
Two routes: remove the version from review, or cancel the whole submission. Both land in Developer Rejected. The exact steps, the five states it works in, and when to wait instead.
- ITMS error codes explained: a reference for App Store upload failures
What ITMS errors are, where Transporter and altool produce them, how to read one, and a reference table of the common codes with cause and fix.
- ITMS-90338: Non-public API usage, and why it is often a false positive
ITMS-90338 flags symbol and selector names that match Apple's private API list. Why it fires on code you never wrote, how to find the real source, and what fixes it.
- ITMS-90683: Missing Purpose String in Info.plist
Which NSxxxUsageDescription key Apple wants, why you get this for permissions you never use, where the key must live, and how to find the SDK responsible.
- ITMS-90809: Deprecated API Usage, and finding the UIWebView you did not write
ITMS-90809 means a UIWebView reference is somewhere in your app or a dependency. How it escalated from warning to hard block, and how to find the framework responsible.
- Metadata Rejected vs Rejected: the difference, and why one needs no new build
Metadata Rejected means Apple objects to your text or screenshots, no new build required. Rejected usually means the binary. How to tell and what to do.
- My app was rejected on Google Play. What happens next?
Your live version stays live. The reason arrives by email as a policy notice, not a review message. The full sequence from rejection to resubmission, in order.
- Unsigned Apple agreements block submission, and nothing tells you clearly
An unaccepted Paid Applications agreement, an incomplete tax form or missing banking details will block submission and sale. Where to look and what order to fix it in.
- What to do if your app is rejected repeatedly
The same citation coming back usually means you fixed the wrong thing. How to read the rejection properly, ask for specifics, escalate, and the account risk on Play.