App Store Connect upload and submission errors, and how to fix them (2026)
Most App Store Connect errors are not hard to fix. They are hard to see: a screenshot that disappears after a successful upload, a submission refused with a generic "version incomplete", a review that won't start. This list comes from building and running OneStore's App Store publishing against Apple's API, on real apps.
Screenshots: IMAGE_ALPHA_NOT_ALLOWED
Symptom: the upload succeeds, your tool says OK, but fewer screenshots appear in App Store Connect than you sent.
Cause: the PNG has an alpha channel. It doesn't matter that every pixel is opaque. Apple accepts the commit request (it returns 200), then its asynchronous processing marks the screenshot FAILED with the code IMAGE_ALPHA_NOT_ALLOWED and drops it. Exports from design tools and from a browser canvas are RGBA by default.
Fix: flatten the image onto an opaque background before uploading (for example with sharp: .flatten({ background: '#ffffff' })), then, after the commit, poll the screenshot's assetDeliveryState for a few seconds to catch any other rejection.
App previews: MOV_RESAVE_STEREO
Symptom: submitting the version fails with STATE_ERROR.ENTITY_STATE_INVALID, a generic "version incomplete". Every check you can think of is green.
Cause: an app preview video failed processing. In our case the audio track wasn't stereo, so Apple flagged the preview MOV_RESAVE_STEREO. A failed or still-processing preview blocks the whole submission.
Fix: the real reason is in the error body, under errors[].meta.associatedErrors, a map from each resource (such as /v1/appPreviews/{id}) to its own errors. Read it instead of the top-level message. Then re-export the video with a stereo audio track (or silent stereo), or delete the failed preview and upload it again.
What's New missing on some languages
Symptom: the submission fails with ENTITY_ERROR.ATTRIBUTE.REQUIRED on whatsNew.
Cause: for an update, every language of the version needs release notes. Languages you added only to localize screenshots or the description often have an empty What's New.
Fix: fill What's New in every language the version has, not only the ones you edited. Translating the main note is usually enough.
Age rating: "relationship does not exist"
Symptom: reading or updating the age rating from the version returns a 404.
Cause: the age rating declaration lives on the app info (/v1/appInfos/{id}/ageRatingDeclaration), not on the App Store version.
Fix: fetch the editable app info for the app and read or patch the declaration there. The same split applies to the name, subtitle and privacy policy URL, which live on appInfoLocalizations.
Export compliance blocking submission
Symptom: the build is attached but the version can't be submitted until the encryption question is answered.
Fix: set usesNonExemptEncryption on the build (false if your app only uses exempt encryption such as HTTPS), or add ITSAppUsesNonExemptEncryption to your Info.plist so every future build carries the answer. Only answer false if it is true for your app.
Review submissions that pile up
Symptom: creating a review submission fails with a 409, and you can't delete the old one.
Cause: Apple allows one open review submission per app at a time, and returns 403 on DELETE /v1/reviewSubmissions/{id}. Empty submissions left by earlier attempts stay around.
Fix: reuse the existing submission that hasn't been sent yet: add your version to it if it isn't already there, then submit it. Don't try to delete it.
READY_FOR_REVIEW is not "in review"
A version in READY_FOR_REVIEW is prepared but not in Apple's queue. It lands there, for example, when its submission was removed. If your dashboard groups it with WAITING_FOR_REVIEW and IN_REVIEW, you will show "in review" and offer "cancel review" on a version that actually needs to be submitted.
Things the API simply won't do
- Create an app:
POST /v1/appsreturns 403, "The resource 'apps' does not allow 'CREATE'". Create the app in App Store Connect, then let your tool find it by bundle ID. - Edit a review reply with PATCH:
customerReviewResponsesrefuses UPDATE. Posting a new response on the same review replaces the old one. - Survive a website outage: when appstoreconnect.apple.com shows Bad Gateway or Akamai errors, the public API often keeps working. It is not your account.
Catch them before you submit
Almost all of these can be checked before pressing Submit. That is what OneStore does on an App Store version: it checks the build, screenshots for each required size, previews, export compliance, age rating, app info, pricing and What's New in every language, fixes what the API allows in one click (flattening screenshots, filling What's New by translation, export compliance after you confirm), and when Apple still refuses, shows Apple's own reasons from associatedErrors instead of "version incomplete".
Related: App Store metadata without fastlane deliver, How to upload an .ipa without Xcode, Google Play Developer API errors.
FAQs
What does IMAGE_ALPHA_NOT_ALLOWED mean?
Your screenshot PNG has an alpha channel. Apple accepts the upload request, then rejects the screenshot during processing. Flatten the image onto an opaque background and upload it again.
How do I find why App Store Connect says the version is incomplete?
Read errors[].meta.associatedErrors in the API error body. It lists each blocking resource, such as a failed app preview, with its own code and message.
What does MOV_RESAVE_STEREO mean?
An app preview video failed processing because its audio isn't in the expected stereo format. Re-export it with a stereo audio track, or delete the failed preview, then upload it again.
Can I create an app with the App Store Connect API?
No. POST /v1/apps is refused with a 403 stating that apps do not allow CREATE. Create the app in App Store Connect first.
Why can't I create a new review submission?
Apple allows one open review submission per app and doesn't let you delete them. Reuse the open submission that hasn't been sent yet, add your version to it, and submit it.