A TestFlight build stuck in processing is usually one of three things: it is still processing normally, it is waiting on export compliance, or the binary failed and Apple emailed you an error. Processing normally takes minutes to about an hour, so first wait, then check your email for a processing error, and provide export compliance if the build shows a compliance prompt. If it is genuinely hung after several hours, the reliable fix is to upload a fresh build with a higher build number, because a stuck build rarely recovers on its own.
Short answer
Most stuck builds clear by waiting, answering export compliance, or re-uploading. Apple's TestFlight page shows a build as Processing while it validates the binary, which usually takes minutes to about an hour. If it sits longer, check your email for a processing-failed notice, then confirm you have provided export compliance information, often by adding the ITSAppUsesNonExemptEncryption key to your Info.plist. If it is truly hung after several hours, increment the build number and upload a fresh build, because a stuck one seldom recovers. Contact Apple only after a build number bump also fails.
What "Processing" means and how long it should take
Processing is the stage right after upload, while App Store Connect validates your binary, generates what it needs, and prepares the build for TestFlight. It normally takes from a few minutes to about an hour, and during busy periods it can run longer without anything being wrong. Seeing Processing for a while is expected, not a failure.
The useful benchmark is roughly an hour. Under that, waiting is almost always the right move, and the build will appear on its own. Well beyond that, especially past several hours with no change and no email, is when Processing stops being normal and becomes something to act on. Knowing that line keeps you from either panicking early or waiting forever.
Why a build gets stuck in processing
A build appears stuck for a handful of distinct reasons, and matching the sign to the cause tells you what to do. It may simply be slow due to an Apple backlog, it may be waiting because you have not answered export compliance, or the binary may have failed processing, in which case Apple sends an email explaining why. Occasionally a build genuinely hangs and will not finish at all.
The table below maps each cause to its sign and fix.
| Cause | Typical sign | Fix |
|---|---|---|
| Normal processing or backlog | Under ~1 hour, no email | Wait |
| Export compliance pending | A "Missing Compliance" prompt | Provide export compliance |
| Invalid binary | An email describing an error | Fix the issue, then re-upload |
| Genuinely hung | Hours with no email or change | Increment build number, re-upload |
| Apple-side incident | Others report the same | Wait, check System Status |
Reading the sign first saves time, because the fixes do not overlap. Providing compliance will not unstick a failed binary, and re-uploading will not help a build that is simply slow but on its way.
Fix 1: check your email for a processing error
The first thing to check is the email associated with your Apple Developer account. When a binary fails to process, Apple does not always show a clear error in App Store Connect, but it sends an email describing the problem, such as an invalid binary, a missing icon, an unsupported architecture, or a bad entitlement. That email is often the fastest explanation for a build that never appears.
If you find such an email, the build is not stuck, it failed, and the fix is to correct the named issue and upload again. Do not keep waiting on a build Apple has already rejected in processing. Reading the email turns a mysterious wait into a specific, fixable problem, which is why it is the first step.
Fix 2: answer export compliance
A very common reason a build seems stuck, or shows as unavailable to testers, is unanswered export compliance. Apps are asked whether they use non-exempt encryption, and until that is resolved the build can be held with a Missing Compliance prompt. You can answer it in App Store Connect by choosing Manage next to the build and completing the questions.
The cleaner fix is to answer it in advance in your project. Add the ITSAppUsesNonExemptEncryption key to your Info.plist, set to the value that matches your app, so Apple does not need to ask, per Apple's export compliance guidance. With the key present, future builds skip the manual compliance step entirely, which removes this cause of a stuck build for good.
Fix 3: upload a fresh build with a new build number
When a build is genuinely hung, several hours in with no email and no movement, the reliable fix is to stop waiting and upload a new build. A build that is truly stuck in processing rarely recovers, so rather than fighting it, you supersede it. Increment your build number, since each upload within a version needs a unique, higher one, and upload again.
A fresh build almost always processes normally, which confirms the previous one had simply hung. You do not need to cancel the stuck build, because you cannot directly, and it will eventually expire or be ignored. This is the single most effective move for a build that will not finish: a new build number and a re-upload, rather than more waiting.
When to wait vs act
Deciding between waiting and acting is mostly about time and signals. The checklist below gives a clear rule for each situation.
| Situation | What to do | Escalate? |
|---|---|---|
| Under one hour | Wait, it is normal | No |
| "Missing Compliance" is shown | Provide export compliance | No |
| A processing error email arrived | Fix the issue and re-upload | No |
| Several hours, no email or change | Upload a new build number | Not yet |
| A day or more, others are fine | Contact Apple | Yes |
The pattern is to give a normal window before doing anything, act immediately on a clear signal like an email or a compliance prompt, and treat a multi-hour hang as a re-upload rather than an escalation. Only a build that resists even a fresh upload is worth taking to Apple.
When to contact Apple
Contact Apple when a build stays stuck even after you have ruled out the common causes: no processing error email, export compliance provided, and a fresh build with a new number also failing to process. At that point it is beyond the usual self-service fixes and reasonable to ask for help. Use the Contact the App Review team page or Apple Developer Support, depending on whether it is a review or account matter.
Include specifics so they can act: your app name and Apple ID, the build number and upload time, and what you have already tried. Keep expectations realistic, because during an Apple-side incident even a perfect binary will not process until Apple resolves it, and support cannot speed that up. Checking Apple's System Status first tells you whether the problem is yours or theirs.
Before you re-upload, scan the build
Because the common fix for a stuck build is to re-upload, and each upload starts processing over, it is worth making sure the build you send is one you actually want to ship. A build can process and reach testers while still carrying security issues that no processing check looks at, such as an embedded API key, cleartext traffic, or a debuggable flag left on.
A scanner like PTKD.com analyzes your .ipa and returns findings ordered by severity and mapped to OWASP MASVS, so the build you re-upload is checked for security before it goes out. To be clear about the boundary: PTKD does not unstick a processing build, provide export compliance, or contact Apple. It checks the artifact you are about to upload, so a re-upload does not quietly ship a security problem along with the fix.
What to take away
- Processing normally takes minutes to about an hour, so wait before assuming a build is stuck.
- Check your account email first, because a failed binary is reported there, not always in App Store Connect.
- Provide export compliance, ideally by adding ITSAppUsesNonExemptEncryption to your Info.plist, to clear a Missing Compliance hold.
- For a genuinely hung build, increment the build number and upload a fresh one rather than waiting.
- Before you re-upload, scan the build with PTKD.com so a re-upload does not ship a security issue.




