We're hitting a hard block on TestFlight beta distribution and cannot find
a way to recover. Posting here in case others have seen this and in case
Apple engineering can clarify what to check.
Symptoms
Every TestFlight submission for our app fails with:
status: 422
code: ENTITY_UNPROCESSABLE.BETA_CONTRACT_MISSING
title: "Beta contract is missing for the app."
detail: "Beta Contract is missing."
The build itself uploads and finishes processing normally in App Store Connect.
It just cannot be assigned to any tester group (internal or external).
Adding internal testers and trying to install on a personal device returns
"The requested application is unavailable."
What we've already verified
Account is active (Account Holder can sign in to App Store Connect normally).
Paid Applications agreement shows as "Active" under Agreements, Tax, and Banking.
Free Apps agreement is also active.
No pending agreements, no banking warnings, no tax forms outstanding.
Builds for the same app processed successfully (no ITC errors during upload).
Reproduced across multiple builds (1004, 1005), same error every time.
App Store Connect API call to /v1/buildBetaDetails returns the same 422.
TestFlight tab shows the build under "Internal Testing — Missing Compliance",
but compliance answers are filled in correctly.
Re-uploaded via Transporter and via xcrun altool — identical result.
What we've already tried
Removed and re-added the app's primary App Store Connect app record (kept).
Toggled export compliance answers off/on.
Created and re-created internal tester groups.
Deleted and re-added internal testers.
Verified Apple Developer Program membership status (Active, renewed 2026-04-23).
Verified bundle ID provisioning profile and entitlements.
Submitted a Developer Program Support ticket (no response after 5 business days).
Question
Is ENTITY_UNPROCESSABLE.BETA_CONTRACT_MISSING expected to surface on an
account where Paid Apps and Free Apps agreements both show as Active?
Is the "Beta contract" a separate agreement that needs to be re-accepted
somewhere other than Agreements, Tax, and Banking? If so, where?
Are there cases where this state is set server-side and cannot be cleared
by re-accepting agreements? If yes, what is the proper channel to request
server-side reset?
Any pointers from Apple engineering or other developers who have hit this
would be appreciated.
Environment:
Xcode 17.x
macOS 26
App Store Connect API: latest
Apple Developer Program membership: Active
App type: iOS app, network extensions, family sharing enabled
Topic:
App Store Distribution & Marketing
SubTopic:
TestFlight
0
0
13