TestFlight "App Not Available" Bug Debug Guide

Apple has known about this since 2021. Here's the 8 root-cause taxonomy + the one workaround that actually replicates.

TL;DR — If TestFlight shows your build as "Testing" but Install fails with "The requested app is not available or doesn't exist," and you've ruled out the obvious causes (tester ACCEPTED, build VALID, Apple ID match, agreement signed), the only replicated workaround is to submit your app for App Store review. Hypothesis: TF install pathway depends on metadata caching that only fully populates after the app reaches a near-RELEASE state.

The bug

The error: "Could not install [App Name]. The requested app is not available or doesn't exist." Build state is VALID, tester state is ACCEPTED, App Store Connect web UI shows the build as "Testing" with a green dot. Press Install — error.

Documented on Apple Developer Forums since February 2021 — thread 674932, last activity May 2024, 400+ replies, zero confirmed Apple fixes. Thread 809636 opened December 2025, zero replies.

The 8 root-cause taxonomy

#ClassVerify viaExpected
1Tester stateGET /v1/betaGroups/{id}/betaTestersstate=ACCEPTED
2Build stateGET /v1/apps/{id}/buildsstate=VALID, expired=false
3Apple ID conflictForum thread 702988Tester email used by 1 Apple ID only
4Paid Apps AgreementASC web UI Agreements pageStatus = ACTIVE
5Distribution certASC web UI Certs pageActive until at least Apple build expiry
6iOS minimum versionBuild minOsVersion≤ iPhone OS version
7Export complianceusesNonExemptEncryptionSet to true or false
8Distribution cacheNot API-checkableThis is the 4-year bug

The diagnostic toolchain (open source)

asc_diag.py

Runs through 8 failure classes via JWT-authenticated ASC API. Outputs WARN/FAIL with fix instructions per class.

export ASC_KEY_ID=...
export ASC_ISSUER_ID=...
export ASC_KEY_FILE=./AuthKey_XXXXXX.p8

python asc_diag.py --all --skip-localizations

asc_submit_for_review.py

Pre-flights all the App Store version requirements then POSTs to /v1/appStoreVersionSubmissions to trigger the workaround.

# Dry run (verify, no submission)
python asc_submit_for_review.py --bundle-id com.example.myapp --dry-run

# Real submit
python asc_submit_for_review.py --bundle-id com.example.myapp

The workaround that actually works

  1. Submit your app for App Store review
  2. Wait for approval (24-72h typical for free apps with simple functionality)
  3. After approval, TestFlight builds become installable
Important: Submitting for review does not require you to release publicly. Apple's "Manual Release" option lets you hold an approved build indefinitely. So this isn't actually committing to the App Store — it's just kicking Apple's backend cache.

Resources

Related products

Free: 14 iOS Rejection Reasons (lead magnet) $19: iOS Indie Launch Playbook $499: ASC API Toolkit

If you want the full TestFlight Debug Bible specifically (4-year forum archive + 8-class taxonomy + scripts + screencast walkthrough), the $29 SKU is now listed — pre-launch price.