App Store

    Why is my build stuck on Processing for 48 hours?

    App Store Connect Builds tab showing a TestFlight build stuck on Processing for 48 hours, with a developer drafting a Feedback Assistant ticket and incrementing CFBundleVersion in Xcode

    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.

    1. 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.
    2. Bump CFBundleVersion in Xcode for every target. Update extensions, app clips, and widgets together. CFBundleShortVersionString stays the same.
    3. 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.
    4. 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.
    5. 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.
    6. Wait one full Processing cycle on the new tuple. Roughly 30 to 60 minutes is a reasonable observation window before any third attempt.
    7. 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.

    StateWhat App Store Connect showsNormal duration48-hour interpretationFirst action
    Processing (silent stall)"Processing" with no Failed badge10 to 30 minutesTwice past Apple's documented thresholdIncrement build number and update Feedback Assistant ticket
    Failed"Failed" with an error listMinutes after uploadAlready documented, not a stallRead errors, fix in Xcode, re-upload on a new build number
    Invalid Binary emailITMS-9000 or ITMS-90562 emailWithin an hourBuild rejected before ProcessingResolve cited entitlement or framework issue, re-upload
    Waiting for Beta Review"Waiting for Beta Review"Hours to days in 2026Queue wait, not ProcessingNo action unless expedited is justified
    Missing Compliance"Missing Compliance" badgeUntil answeredSitting on the export compliance formAnswer 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.
    • #testflight
    • #processing
    • #app-store-connect
    • #ios
    • #48-hours
    • #build-stuck
    • #feedback-assistant
    • #cfbundleversion

    Frequently asked questions

    Will my 48-hour Processing build eventually clear on its own?
    Sometimes, yes. The January 2026 and March 2026 forum threads include reports of stuck builds that did eventually clear without a re-upload, just much later than the documented window. Counting on that is the wrong default at 48 hours. Apple's documentation already treats 24 hours as the line for action, so the cost of running the escalation and a parallel increment is much lower than another full day of waiting.
    Does Apple treat 48 hours differently from 24 hours in the documentation?
    No. The build upload statuses page describes a single 24-hour threshold and a single recommended action: file a Feedback Assistant ticket or contact Apple Developer Support. There is no separate 48-hour rule. What changes at 48 hours is the practical reading: a single ticket may have already been filed, and the right next step is to add the new (short version, build) tuple from the increment to the same case rather than open a second ticket.
    Does a CFBundleVersion increment burn the version slot in TestFlight?
    No. App Store Connect indexes builds by the (CFBundleShortVersionString, CFBundleVersion) tuple. Bumping CFBundleVersion under the same short version produces a fresh Processing pass without resetting Beta App Review state on the version. External testers do not see a new first-build review event, and the original stuck row stays in place so Apple Developer Support can pivot from it using the Feedback ID rather than from the new upload.
    What does a Feedback Assistant report need to include at the 48-hour mark?
    Include the Apple ID of the app, the bundle identifier, the exact CFBundleShortVersionString and CFBundleVersion of the stuck build, the upload timestamp in UTC, the upload method (Xcode, Xcode Cloud, Transporter, or third-party CI), and a screenshot of the Builds tab row showing Processing. If a system-status check at the time of upload showed all systems green, link that observation so Apple support has the same evidence the forum threads carry.
    Is the 2026 pattern of 48-hour stalls tied to a specific App Store Connect change?
    Apple has not published a root cause. The Apple Developer Forum thread on the January 2026 incident records internal server error warnings on the App Store Connect side and no real-time system-status alert. The March 2026 macOS thread records eight consecutive builds frozen for more than 80 hours under the same short version. Treat the upstream as observed, not confirmed, and let the documented escalation handle the case file.

    Keep reading

    Scan your app in minutes

    Upload an APK, AAB, or IPA. PTKD returns an OWASP-aligned report with copy-paste fixes.

    Try PTKD free