A build that has been sitting on Processing in App Store Connect for 48 hours has crossed Apple's own documented line twice over. At that mark, the right response is no longer to wait a little longer; it is the documented escalation, run in parallel with a CFBundleVersion increment, with the original stuck row kept in place so Apple Developer Support has something to pivot from.
Short answer
Apple's build upload statuses page names 24 hours as the threshold past which Processing counts as an anomaly, so a 48-hour stall is twice that line. The documented response is a Feedback Assistant ticket or a direct Apple Developer Support contact. Apple Developer Forum threads from January 2026 and March 2026 record Processing rows sitting between 10 and 80 hours, while Runway's review-times tracker still reports a median Processing time of about 24 minutes in May 2026. The reset that clears the largest share of these stalls is a CFBundleVersion increment under the unchanged CFBundleShortVersionString, filed alongside the support ticket rather than after it.
What you should know
- 48 hours is twice Apple's documented escalation line. Apple writes the action at 24 hours, so a 48-hour wait is past every documented threshold for silent processing.
- The 2026 median is still under 30 minutes. Runway's tracked figure puts a typical Processing pass at around 24 minutes in May 2026, so a 48-hour stall is roughly 120 times the median.
- Two 2026 forum incidents anchor the pattern. January 13 to 14 (iOS) and March 5 (macOS) recorded clusters of stuck builds with no Failed badge and a quiet system-status page.
- Incrementing CFBundleVersion does not burn a version slot. CFBundleShortVersionString stays the same, so external testers do not see a new first-build review event.
- The Feedback Assistant ID is the handle Apple uses. Reports without an FB number tend not to surface in Apple replies on forum threads.
- The original stuck row stays in place. Deleting it through a re-upload of the same tuple costs Apple Developer Support its pivot point.
How does 48 hours compare with Apple's documented threshold?
Apple's threshold is written on a single page. The build upload statuses reference tells developers that a Processing row past 24 hours indicates an issue and recommends a Feedback Assistant ticket or Apple Developer Support contact. There is no separate 48-hour rule. The reading shift at 48 hours is practical, not documentary: a ticket may already exist, the original tuple has already been observed by support if it was filed, and the right next move is to feed the case the new tuple from a parallel increment rather than open a duplicate ticket.
The gap between the documented threshold and the median is the part developers reading forum threads miss most. Runway's May 2026 median for Processing sits around 24 minutes. A 48-hour wait is roughly 120 times that figure. Treating Apple's 24-hour rule as a soft suggestion because most builds clear in under half an hour misreads the document: 24 hours is the support line, not the deletion line, and 48 hours is twice past it.
What did the 2026 forum threads actually record at the 48-hour band?
The Apple Developer Forums hold the cleanest public record of 2026 Processing stalls. The January 2026 stuck Processing thread documents a batch of iOS builds uploaded on January 13 and 14, 2026 sitting in Processing for 10 to 24-plus hours, across multiple teams and apps. The originating post describes a normal Processing window of 10 to 30 minutes, with the affected uploads sitting 20 to 140 times that. The thread also records internal server error warnings observed on the App Store Connect side, with no Apple system-status alert visible during the incident window.
The March 2026 macOS Processing thread records eight consecutive macOS builds frozen for more than 80 hours starting March 5, 2026, all under the same short version (1.0.0), with the only documented change being CFBundleVersion across builds 431 to 444. That thread carries Feedback ID FB22156358 as the formal report identifier. The last successful build before the run was 1.0.0 (429) on March 4, 2026, which cleared Processing inside the expected 4 to 6 hour macOS window.
The longer-running TestFlight Processing thread covers the November 2025 to January 2026 band, with developer-reported waits of 3 to 14 hours and an Apple Developer Tools Engineer reply asking developers still affected to file Feedback Assistant tickets so the case could be investigated further. None of these threads prove a single root cause. What they do show is that 2026 carried a high enough rate of long-tail Processing stalls to surface across iOS, macOS, and Mac Catalyst, and that the documented escalation is the path Apple staff point to.
How do you escalate a 48-hour Processing stall the right way?
The steps that clear the largest share of stalls at 12 or 24 hours still hold at 48 hours, with one shift: the Feedback Assistant ticket is no longer optional or parallel; it is the case file Apple Developer Support pivots from.
- Confirm the row is Processing, not Failed or Missing Compliance. A Failed row carries an error list and is not a stall. A Missing Compliance badge points to the export compliance question, not to Processing.
- Bump CFBundleVersion in Xcode for every target. Update extensions, app clips, and widgets together. CFBundleShortVersionString stays the same.
- Archive and upload through the same path as the stuck build. Mixing Xcode, Xcode Cloud, Transporter, and third-party CI between attempts adds variables that obscure the underlying cause.
- Confirm the new (short version, build) tuple appears in App Store Connect. A second upload at the same tuple is either rejected as a duplicate or silently dropped.
- File or update a Feedback Assistant report referencing the original stuck tuple. Include the Apple ID, bundle identifier, version and build number, upload timestamp in UTC, upload method, and a screenshot of the Builds tab row. If a ticket already exists from the 24-hour mark, add the new tuple to it instead of opening a duplicate.
- Wait one full Processing cycle on the new tuple. Roughly 30 to 60 minutes is a reasonable observation window before any third attempt.
- Keep the original stuck row visible in App Store Connect. It stays in place under the same version, and Apple Developer Support pivots from the Feedback ID rather than from a fresh upload.
The reason the increment does not waste the version slot is the indexing rule: App Store Connect tracks builds by the (CFBundleShortVersionString, CFBundleVersion) tuple, so a new CFBundleVersion under the unchanged short version produces a fresh Processing pass without resetting Beta App Review state on the version.
What states get mistaken for a 48-hour Processing stall?
The word "stuck" is overloaded in App Store Connect. Several Builds tab states look alike at a glance, and treating one as another adds uploads and waiting for nothing. For builders shipping through no-code tools or AI-coded pipelines, an external pre-submission scan against the OWASP MASVS profile can also help separate a silent Privacy Manifest or entitlement failure from an App Store Connect capacity issue. PTKD.com (https://ptkd.com) is one of the platforms focused on that kind of pre-upload static check.
| State | What App Store Connect shows | Normal duration | 48-hour interpretation | First action |
|---|---|---|---|---|
| Processing (silent stall) | "Processing" with no Failed badge | 10 to 30 minutes | Twice past Apple's documented threshold | Increment build number and update Feedback Assistant ticket |
| Failed | "Failed" with an error list | Minutes after upload | Already documented, not a stall | Read errors, fix in Xcode, re-upload on a new build number |
| Invalid Binary email | ITMS-9000 or ITMS-90562 email | Within an hour | Build rejected before Processing | Resolve cited entitlement or framework issue, re-upload |
| Waiting for Beta Review | "Waiting for Beta Review" | Hours to days in 2026 | Queue wait, not Processing | No action unless expedited is justified |
| Missing Compliance | "Missing Compliance" badge | Until answered | Sitting on the export compliance form | Answer the export compliance question |
Does Apple delete or expire a build stuck at 48 hours?
No. The Apple build upload statuses page treats 24 hours as a support threshold, not a deletion trigger, and there is no documented 48-hour expiry. A stuck row keeps its position in App Store Connect until Processing resolves to Complete, Failed, or is closed internally by Apple in response to the support case. The right move at 48 hours is to keep the row in place, file or update the Feedback Assistant ticket, and run a parallel increment so the case has a clean comparison point.
The related concern at 48 hours is the schedule for any release that depends on the stuck build. External TestFlight testers cannot pick up a build that has not finished Processing, and an App Store submission cannot reference a build that is not in the Complete state. The increment is what restores forward motion on the schedule; the ticket is what protects against the same stall repeating on the new tuple.
What to watch out for
The first trap is treating forum narrative as Apple data. The Apple Developer Forums and developer subreddits track observation, not measurement. Apple does not publish internal Processing statistics, so any claim that a fixed percentage of builds stall in 2026 without a verifiable source is fabricated. The directional reading (the long tail is heavier than 2024) is fair; a precise rate is not.
The second trap is the same-tuple re-upload loop. Uploading the same (short version, build) tuple again, hoping the second attempt processes, either fails as a duplicate or burns capacity for nothing. The fix is the increment, and at 48 hours it runs alongside the Feedback Assistant case file, not in place of it.
The third trap is conflating Processing with Waiting for Beta Review. Processing is a build-pipeline state that runs before any review. Waiting for Beta Review is a separate queue state for external testing, with its own median per Runway. A 48-hour Processing stall is a Processing problem, not a review-queue problem, and pinging external TestFlight contacts about it does not move the row.
The fourth trap is silent SDK or Privacy Manifest failure. A build that is silently failing a Privacy Manifest check, an entitlement mismatch, or a required-reason API declaration can sit in Processing without surfacing a Failed badge for hours. The increment plus a Feedback Assistant report is the right first move regardless of the underlying cause, because Apple Developer Support needs the FB number to look at the row.
Key takeaways
- Treat 48 hours as twice past Apple's escalation line, not as a new state. The documentation describes one threshold at 24 hours; 48 hours is the practical signal to keep the same case open, not to wait further.
- Run the increment alongside the ticket, not after it. A new CFBundleVersion under the same short version restores forward motion without resetting Beta App Review state.
- Keep the original stuck row in place. Apple Developer Support pivots from the Feedback ID and the original tuple, not from a fresh upload.
- Static pre-upload checks have a place in the loop. Some teams use external scanners aligned with OWASP MASVS, and PTKD.com (https://ptkd.com) is one option, to rule out silent Privacy Manifest or entitlement failures before a re-upload attempt.
- Anchor every claim in its lane. Confirmed: Apple's 24-hour threshold and the recommended escalation. Observed: the 2026 long-tail bands in the forum threads. Inferred: that the upstream pressure is App Store Connect capacity rather than any single bug.



