New Build Uploaded But Not Appearing in App Store Connect

Xcode says upload succeeded, Transporter says delivered, yet the build is nowhere in App Store Connect.

Xcode Organizer shows “Upload successful” with a checkmark. Transporter’s status bar reaches 100% and says “Delivered.” You refresh App Store Connect → TestFlight → Builds, and the build isn’t there. Thirty minutes pass — still nothing. You re-archive, re-upload, same result. The Apple ID inbox is silent. You start wondering whether the upload actually went through or whether some validation step you can’t see has rejected it.

Most of the time the build is in one of three quiet states: still in the post-upload “Processing” phase, silently rejected for an Info.plist or signing issue with the rejection email queued, or routed to the wrong app/team without showing up in the place you’re looking. Each state has a different fix; running the wrong fix (e.g., re-uploading) usually adds friction.

Common causes

Ordered by hit rate.

1. Apple is still in the “Processing” phase

After upload, Apple’s pipeline does asset extraction, validation, dSYM processing, and bitcode recompilation (where applicable). The build doesn’t appear in TestFlight or the App Store build picker until this completes. Typical: 10-60 minutes. During high-traffic windows (post-WWDC, new iOS release), 2-6 hours is normal.

How to spot it: App Store Connect → TestFlight → Builds. Sometimes you’ll see the build with status “Processing” rather than missing entirely. If it’s truly missing, wait 30 minutes and refresh before assuming worse.

2. Build was silently rejected at validation

After upload, Apple runs static analysis on the IPA. Failures (missing Info.plist keys, unsupported architectures, banned APIs, missing entitlement matching App ID) send an email with subject “App Store Connect: Your app build is invalid” but the build itself never enters App Store Connect’s UI. The email can take 5-30 minutes to arrive.

How to spot it: Check the uploading Apple ID’s email (including spam) for an “invalid” message. Common ITMS codes: 90161 (missing entitlements), 90201 (invalid binary), 90685 (CFBundleIdentifier mismatch), 91053 (privacy manifest missing).

3. Uploaded to the wrong app record or team

You have two App IDs (production + dev) and Xcode picked the dev one due to scheme/signing config. Or your Apple ID is in two teams and the upload went to the secondary team. App Store Connect shows the build in a place you’re not looking.

How to spot it: App Store Connect → top-left team picker → switch teams. Also check every app record in that team. Verify the Bundle ID in your archive matches what App Store Connect expects.

4. Build number collides with an existing build

Within a single version string (CFBundleShortVersionString), each build number (CFBundleVersion) must be unique. If you upload 1.2.3 (42) and an earlier 1.2.3 (42) exists (even if discarded), Apple may accept the upload but discard the duplicate without UI feedback.

How to spot it: Check Activity → All Builds for any prior (42) under 1.2.3. Always bump the build number.

5. Agreements / banking / tax holding back processing

The whole account is suspended for processing if Paid Apps agreement is outdated, tax info expired, or banking is invalid. Sometimes the upload succeeds at the transfer layer but Apple silently parks it.

How to spot it: App Store Connect → Business → Agreements, Tax, and Banking. Any non-Active status blocks processing.

6. Transporter or Xcode reported “success” but transfer was incomplete

Network blip mid-upload, or a corporate proxy stripping headers, can let the client report success while Apple receives nothing usable. The IPA was sent but not registered.

How to spot it: Use Transporter (newer build, more transparent error messages) instead of Xcode Organizer for the next upload. Watch for any warning lines after “Delivered.”

Information to collect

  • Exact upload timestamp and the tool used (Xcode Organizer / Transporter / xcrun altool).
  • The uploading Apple ID and team membership.
  • The archive’s Bundle ID, version (CFBundleShortVersionString), and build number (CFBundleVersion).
  • Any Apple email mentioning your app since the upload, including ITMS codes.
  • App Store Connect → Activity log for the affected app.

Shortest path to fix

Step 1: Wait 30 minutes, then refresh

App Store Connect’s UI doesn’t auto-update reliably. After 30 minutes, hard-refresh (Cmd+Shift+R in Safari/Chrome) the TestFlight Builds page. Also refresh Activity → All Builds.

Step 2: Check the uploader’s email

Search the inbox of the Apple ID that uploaded for the past 24 hours. Look for:

  • Subject containing “Your app build is invalid” or “App Store Connect”.
  • ITMS-90xxx codes in the body.
  • Specific complaints (e.g., “missing UIApplicationSceneManifest”).

Spam folders catch these more often than you’d expect.

Step 3: Verify Bundle ID, version, and build number

Open the archive’s Info.plist (Xcode → Organizer → right-click archive → Show Package Contents → Info.plist):

# Or via plistutil
plutil -p MyApp.xcarchive/Products/Applications/MyApp.app/Info.plist | grep -E "BundleIdentifier|BundleVersion"

Compare against App Store Connect → App Information → Bundle ID. Any mismatch (typo, suffix .dev vs none) means the build went to a different app.

Step 4: Check the right team and app

App Store Connect → top-left → switch teams. Loop through every team your Apple ID belongs to. For each, check Activity → All Builds. The build may have landed in a sibling project.

Step 5: Bump the build number and re-upload via Transporter

If the build is truly missing and you’ve waited 60 minutes:

  • In Xcode, increment CFBundleVersion (e.g., 4243).
  • Archive again.
  • Open Transporter, drag the new IPA in, click Deliver.
  • Transporter shows more verbose validation errors than Xcode Organizer.
# Or via command line
xcrun altool --validate-app -f MyApp.ipa -t ios -u "$ASC_USER" -p "@keychain:ASC_PASSWORD"
xcrun altool --upload-app -f MyApp.ipa -t ios -u "$ASC_USER" -p "@keychain:ASC_PASSWORD"

--validate-app catches issues before consuming the build number slot.

Step 6: Confirm in App Store Connect

After upload, wait 10-30 minutes and check App Store Connect → TestFlight → Builds. The new build should appear with status “Processing” and then “Ready to Submit” or similar.

How to confirm the fix

  • The new build appears in App Store Connect → TestFlight → Builds with the expected version and build number.
  • Status transitions from “Processing” to “Ready to Submit” within an hour.
  • The Apple email inbox receives a confirmation message after processing completes.
  • The build is selectable in App Store → Build picker for submission.

If it still fails

  1. Use xcrun altool --validate-app before the next real upload to surface validation errors locally.
  2. Check Apple System Status for TestFlight or App Store Connect incidents; outages can park uploads.
  3. Inspect the IPA manually for missing entitlements:
unzip MyApp.ipa -d Inspect/
codesign -d --entitlements - "Inspect/Payload/MyApp.app"
  1. As a last resort, file App Store Connect support with the upload timestamp, Apple ID used, and Bundle ID; they can confirm whether the upload landed.

Prevention

  • Always bump the build number before each upload; configure CI to auto-increment.
  • Run xcrun altool --validate-app as a pre-upload step in CI to fail loudly on issues before the IPA hits Apple.
  • Keep Agreements / Banking / Tax status green; check monthly.
  • Use Transporter for all production uploads; its error reporting is significantly clearer than Xcode Organizer’s.
  • Subscribe to Apple Developer email notifications for the account so processing rejections are seen quickly.

Tags: #Troubleshooting #App Store #App review #TestFlight