# ITMS-91053 and ITMS-91055: privacy manifest upload errors explained > ITMS-91053 means an API that needs a declared reason has no entry in your privacy manifest. ITMS-91055 means an entry exists but the reason value is not a valid reason code. The exact messages and the fix for each, from the Apple Developer Forums thread they appear in. - Canonical page: https://obelisk.club/blog/itms-91053-itms-91055-privacy-manifest - Author: Peter Zhang - Published: 2026-10-31 - Tags: xcode, app-store-connect, itms, privacy-manifest, swiftui, debugging Two upload errors come from the privacy manifest (`PrivacyInfo.xcprivacy`) and are easy to mix up. Both are quoted below as developers posted them in the Apple Developer Forums [thread on missing and invalid API declarations](https://developer.apple.com/forums/thread/749940). Apple does not publish a list of ITMS codes, so these messages are Apple's wording as quoted there, and the text you get today may differ. ## ITMS-91053: Missing API declaration ```text ITMS-91053: Missing API declaration - Your app's code in the "" file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryUserDefaults. [...] you must include a NSPrivacyAccessedAPITypes array in your app's privacy manifest to provide approved reasons for these APIs used by your app's code. ``` **What it means:** code in the named file calls an API that requires a declared reason, and your privacy manifest does not declare one. The category is named in the message. The thread shows `NSPrivacyAccessedAPICategoryUserDefaults` and `NSPrivacyAccessedAPICategoryFileTimestamp`. **Fix:** add a `NSPrivacyAccessedAPITypes` array to the app's privacy manifest, with one entry per category named in the error and the approved reason for how your app uses that API. The message links to Apple's page, [Describing use of required reason API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api), which lists the required reason APIs and the approved reasons. Note that the file named in the message may be inside a third-party SDK, not your own code. The same rule applies to it. ## ITMS-91055: Invalid API reason declaration ```text ITMS-91055: Invalid API reason declaration - The PrivacyInfo.xcprivacy for the "" file contains "App Functionality" as the value for a NSPrivacyAccessedAPITypeReasons key instead of a valid reason code for using an API in the NSPrivacyAccessedAPICategoryFileTimestamp category. [...] ``` **What it means:** the manifest does have an entry, but a value under `NSPrivacyAccessedAPITypeReasons` is not a valid reason code for that API category. In the example, "App Functionality" is wording from the App Store privacy labels. It is not a reason code. **Fix:** replace each value with a reason code that Apple lists for that exact category on the same Apple page. Reason codes are specific to each API category, so a code that is valid for one category may not be valid for another. ## Build the file instead of writing XML by hand The [privacy manifest generator](/tools/privacy-manifest-generator) builds a `PrivacyInfo.xcprivacy` from your choices and shows the Apple page behind each rule. If you have the error email or Xcode output, paste it into the [ITMS error lookup](/tools/itms-error-lookup) to see every code in it explained, and read [ITMS-90870, the launch screen error](/blog/itms-90870-missing-launch-screen) if that one is in the same email.