Summary App Store Connect validation (Transporter) is rejecting a build that includes a ReplayKit Broadcast Upload extension. The validator reports that RPBroadcastProcessMode is “not specified”, but the shipped IPA’s Upload appex Info.plist has the key at the documented nested path, and Apple’s own analyser (swinfo) shows the same key/value.
Error (Transporter 409) “Invalid Info.plist value. The value for the key 'RPBroadcastProcessMode' in bundle BeamRoomHost.app/PlugIns/BeamRoomUpload2.appex is invalid. RPBroadcastProcessMode value must be 'RPBroadcastProcessModeSampleBuffer' or 'RPBroadcastProcessModeMP4Clip'. The key was not specified.” Example error ID seen: 94ec8b42-ef1b-44e8-9d70-2c76458e1bb3
Environment • Xcode 26.0.1 (17A400) • macOS 15.6 (24G84) • Transporter 1.3.4 (13410) • App Apple ID: 6752822011 • Host bundle: com.conornolan.BeamRoomHost • Upload appex bundle: com.conornolan.BeamRoomHost.BeamRoomUpload2 • Version/Build: 0.9.4 (14) Most recent reproduction: 2025-10-02 ~09:00 GMT+1
Proof the key exists (from the IPA) Inside the IPA at: Payload/BeamRoomHost.app/PlugIns/BeamRoomUpload2.appex/Info.plist
NSExtension.NSExtensionPointIdentifier = com.apple.broadcast-services-upload NSExtension.NSExtensionAttributes.RPBroadcastProcessMode = RPBroadcastProcessModeSampleBuffer
Proof from Apple’s analyser (swinfo) for the same IPA asset-description.plist contains: … RPBroadcastProcessMode = RPBroadcastProcessModeSampleBuffer …
Minimal plist shape used (Upload appex Info.plist) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"><dict> <key>CFBundleDevelopmentRegion</key><string>en-GB</string> <key>CFBundleExecutable</key><string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key><string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key><string>6.0</string> <key>CFBundleName</key><string>$(PRODUCT_NAME)</string> <key>CFBundlePackageType</key><string>XPC!</string> <key>CFBundleShortVersionString</key><string>$(MARKETING_VERSION)</string> <key>CFBundleVersion</key><string>$(CURRENT_PROJECT_VERSION)</string> <key>MinimumOSVersion</key><string>26.0</string> <key>NSExtension</key><dict> <key>NSExtensionPointIdentifier</key><string>com.apple.broadcast-services-upload</string> <key>NSExtensionPrincipalClass</key><string>$(PRODUCT_MODULE_NAME).SampleHandler</string> <key>NSExtensionAttributes</key><dict> <key>RPBroadcastProcessMode</key><string>RPBroadcastProcessModeSampleBuffer</string> </dict> </dict> </dict></plist>
What we’ve tried
• Fresh Upload appex target from Xcode template + NEW bundle ID.
• Minimal Info.plist (only keys above).
• Also tried a top-level duplicate of RPBroadcastProcessMode in addition to the nested key.
• Tried RPBroadcastProcessModeMP4Clip (disposable build) → still reported “key not specified”.
• Organizer vs Transporter uploads.
• Xcode 26.0 → 26.0.1.
In every case the IPA and swinfo show the key/value, yet ASC reports “not specified”.
Questions
• Is there a current ingest/validator issue where RPBroadcastProcessMode is not read from the nested path in Upload appex Info.plist?
• Are there any additional expectations for ReplayKit Upload appex in ASC validation beyond the documented nested key?
• Any recommended workaround while this is investigated?
Cross-references
• Feedback Assistant ID: FB20412340 (contains full IPA, asset-description.plist, screenshots, and a short Transporter screen recording).
• Developer Support case: 102707552863.
• Recent x-apple-request-uuid example: 30aa2221-3df3-10a2-b161-b59df37f080c.
• SHA-256 for the ZIP of artefacts attached in Feedback: f7397c13e85d4ef0f5722ea75821ad04d51fe5f103ed03dbac646d3902e91227.
Happy to provide a minimal repro project if helpful. Thanks in advance for any guidance or confirmation from the ASC/build-processing side.