// answer

Why TestFlight beta builds can’t be installed

Short answer

TestFlight blocks installation when the build is expired, not approved for the tester, or no longer assigned to that tester’s group. Check build status, tester access, and device eligibility first.

Knowing the number is the easy part. Finding people who actually stay opted in is the rest of it: Get testers

Why does TestFlight say my beta build can’t be installed

TestFlight says a beta build can’t be installed when the build is no longer eligible for that tester, or when the tester’s device cannot accept that build. The fix is to check build status, tester assignment, device compatibility, and whether the app still has a valid TestFlight build attached to the right group.

The most common cause is that the build expired. Apple lets you expire a build in App Store Connect, and once you do, the build no longer allows internal and external testers to install it. If a tester taps an old invitation or opens an old TestFlight entry, the app can look available but still fail at the install step.

Another common cause is that the tester was never assigned to the right group, or was removed from it. External testers are invited through groups, and the build has to be added to that group before they can install it. Internal and external testing are separate paths, and a build marked as internal only cannot be used for an external tester. Apple documents both the group requirement and the internal-only restriction in App Store Connect help.

Approval status matters too. Apple says an external beta build may require review before it becomes available for TestFlight testing. If the first build in a group has not cleared review yet, testers can see the invitation flow but still fail when they try to install. That is the inconvenient part people miss: the build upload completed, the invitation exists, and the app still is not installable because App Review has not finished.

Device and account eligibility can block installation as well. Apple says managed Apple Accounts created in reserved domains cannot be used to test builds. TestFlight also requires testers to install the free TestFlight app on their devices, and the beta build must include the right application identifiers in its provisioning profile to qualify for TestFlight. If any of those pieces are wrong, the build may appear in the tester’s list and still refuse to install.

You should also check whether the tester is actually eligible for that build version. Apple documents that builds uploaded as TestFlight Internal Only from Xcode or Xcode Cloud are marked internal under the build number and can only be added to internal tester groups. A tester who belongs to the wrong side of that split sees the same failure mode as an expired build: the install button leads nowhere useful.

A practical checklist helps faster than guessing. Open App Store Connect, confirm the build is still active, confirm it is assigned to the tester’s group, confirm the group is the correct type, and confirm the tester is using a supported Apple account and device. If the build was just uploaded, wait for processing and, for external testing, review approval. Then ask the tester to open TestFlight again instead of using an old invitation link.

If you also ship on Android, do not mix the TestFlight problem with Google Play testing rules. Google Play’s current requirement for new personal developer accounts is a closed test with a minimum of 12 opted-in testers for 14 continuous days before production access. Internal testing is separate and can have up to 100 testers, and it does not count toward that closed testing requirement. That rule affects Play release readiness, not whether a TestFlight build installs.

The wrong fix is to keep re-inviting testers without checking the build state. Re-sending the same broken invite does not revive an expired build, and it does not move an internal-only build into an external group. The useful move is to inspect the build record itself, then update the group assignment or upload a new build if the old one is expired or invalid. If you need a place to coordinate testers, use your own workflow, or a platform like https://devconnectplatform.com, rather than trying to force install behavior from TestFlight.

When installation fails after all of that, the problem is usually one of three things: the build is expired, the tester is not in the right group, or the build is not yet approved for that testing path. Those are the checks that actually change the outcome. Everything else is noise until those three are ruled out.

What to check first

Start with the build status in App Store Connect. If you see Expire Build, the build is still active. If you already expired it, that build is dead for testing and must be replaced with a new upload. Apple states directly that an expired build no longer allows internal or external testers to install it.

Next, check the tester group. External testers need an external group, and the build has to be attached to that group. Internal-only builds cannot go to external groups. If the person trying to install was invited by email or public link but never added to the correct group, TestFlight will reject the install path even though the app listing still looks legitimate.

Then check whether Apple review is still pending. For external testing, the build may require review, and the first build added to a group is sent to App Review. That means a fresh upload is not automatically installable the same minute it appears in App Store Connect. People often mistake “uploaded” for “ready,” and TestFlight does not treat those as the same thing.

What testers should verify on their device

The tester should install the current TestFlight app, sign in with an eligible Apple account, and open the invitation from the current build flow, not from an old message saved weeks ago. Apple notes that some managed Apple Accounts cannot test builds, so account type matters as much as the device itself. A working invite to the wrong account still fails.

The tester should also confirm the device matches the build requirements. If the build was uploaded with a provisioning profile or application identifier mismatch, the install can fail after the tester taps install. Apple says eligible TestFlight builds must include application identifiers in the provisioning profiles, so a signing problem is not cosmetic, it is a hard block.

Why the failure message feels vague

TestFlight compresses several different problems into one user-facing failure. An expired build, a missing group assignment, a review hold, or a bad account all can end with the same “can’t be installed” result. That is why the message is frustrating: it describes the symptom, not the cause. The fix is to verify the build path step by step instead of assuming the first error text is precise.

A fast recovery path

If you need the shortest path to a working install, do this: confirm the build is active, confirm the tester is in the right group, confirm the tester’s Apple account is eligible, confirm the build is approved if it is external, then ask the tester to refresh TestFlight. If the build is expired or misassigned, upload a replacement build rather than trying to rescue the old one. That saves time and avoids chasing a dead install.

If you are managing both iOS and Android release gates, keep them separate. TestFlight problems are about Apple’s beta distribution flow. Google Play problems are about Play Console testing requirements, including the 12-tester, 14-day closed test rule for new personal developer accounts. Mixing those two systems wastes time because the failure causes are different, even when the symptom looks similar.

FAQ

Does an expired TestFlight build still show up for testers Yes. Apple says an expired build no longer allows testers to install it, so the build can still be visible in some places while being unusable for installation.

Can an external tester install a build that was uploaded as internal only No. Apple says builds uploaded as TestFlight Internal Only can only be added to internal tester groups, so external testers cannot install them.

How many external testers can TestFlight support Apple says you can invite up to 10,000 external testers per app.

Does Google Play’s 12-tester rule affect TestFlight No. Google Play’s 12 tester, 14 day closed testing requirement applies to Google Play production access for new personal developer accounts, not to TestFlight installation.

What is the fastest thing to check when install fails Check whether the build expired, whether the tester is in the correct group, and whether the build still needs review. Those three issues account for most install failures Apple documents in TestFlight help.

Frequently asked questions

Does an expired TestFlight build still show up for testers

Yes. Apple says an expired build no longer allows testers to install it, so the build can still be visible in some places while being unusable for installation.

Can an external tester install a build that was uploaded as internal only

No. Apple says builds uploaded as TestFlight Internal Only can only be added to internal tester groups, so external testers cannot install them.

How many external testers can TestFlight support

Apple says you can invite up to 10,000 external testers per app.

Does Google Play’s 12-tester rule affect TestFlight

No. Google Play’s 12 tester, 14 day closed testing requirement applies to Google Play production access for new personal developer accounts, not to TestFlight installation.

What is the fastest thing to check when install fails

Check whether the build expired, whether the tester is in the correct group, and whether the build still needs review.

Know someone stuck on this? Send them the answer.

Sources

Every link here was fetched and confirmed to resolve before this page went live.

More on this topic: App testing

Related questions

Not the question you had?

Ask it. Every source gets fetched and checked before anything goes up, so it takes a day or two, and questions that cannot be answered honestly do not get a page at all.

No account, no email address needed.

Still stuck on the 14 days?

DevConnect is a tester exchange: you test someone else's app, they test yours. No payment, no fake installs. You can also count your days without an account.