App Store Connect: Can't change Primary Locale to nl-NL — 19 historical versions blocked by missing screenshots, API returns 409

I'm trying to change an app's Primary Language in App Store Connect from de-DE to nl-NL and hitting a state I can't resolve through any interface available to me.

Environment

  • App Store Connect (web UI) and App Store Connect API v1

Problem UI: App Information → Primary Language → nl-NL → Save fails with: "Primary Locale couldn't be saved because you must first provide all the required screenshots for each version in this language."

API: PATCH /v1/apps/1669670490 with attributes.primaryLocale = "nl-NL" returns HTTP 409: ENTITY_ERROR.ATTRIBUTE.INVALID.INVALID_STATE.MISSING_SCREENSHOTS_PRIMARY_LOCALE

Error detail contains an unsubstituted placeholder: "...you must first provide all the required @@LANGUAGE_VALUE@@ screenshots..."

What I've verified

  • Current live version (3.7.6) and current editable version (3.7.11) both have complete nl-NL screenshot sets for all required device sizes (6.9" iPhone, 13" iPad). No Watch app, iMessage extension, Custom Product Pages, In-App Events, or IAPs.
  • Enumerated all 23 versions via the API (1.0 → 4.1.0). 19 of them have an nl-NL appStoreVersionLocalization (with real historical description/keywords/support URL) but zero nl-NL screenshots attached.
  • Tried POSTing an nl-NL screenshot set to one historical version (4.1.0) directly via the API to confirm this isn't just a UI restriction. Also returns 409 ENTITY_ERROR.ATTRIBUTE.INVALID.INVALID_STATE — historical versions are locked against edits (including screenshots) at the API level, not just the UI.

Question Since these historical versions can't be edited through any supported interface, is there a documented way to satisfy or bypass the "screenshots for each version" check for locked historical versions when changing Primary Locale? Filed as case 20000130035264 with Developer Support, who pointed me here for the technical side.

Please submit a bug report with screenshots of the issues you're seeing, especially the error with the placeholder text.

This is what I see when I try to update the primary language:

However, I have media uploaded for the "Dutch" language in the new version that is ready for submissions and the existing prod version.

Just a few ideas.

  • What are the languages defined ? May be it is missing in something else than dutch.

  • Have you checked that you have an nl.lproj file defined in Settings ?

  • Did you try to set the primary language from the dutch page (not German) ?

@Claude31 @Frameworks EngineerThanks for putting those ideas out there :D

  • When we took over the app it had English and German, so I wanted to add dutch and make it the primary language since the app is only available in Dutch and English. I've checked the other languages and made sure that we have media for all of them on the highest resolution display
  • This was something I was not aware of, we use Expo, so what I did was add some lines to the app.config that would then later generate the nl.lproj file. I will try this new bundle later, and I will follow-up on this with you.
{
    locales: {
      en: './locales/en.json',
      nl: './locales/nl.json'
    },
    build: {
      ....
      infoPlist: {
        CFBundleLocalizations: ['en', 'nl'],
        CFBundleAllowMixedLocalizations: true
      }
 }
  • I've tried to do it from the other languages and nothing helped there.

@Claude31 No luck on the changes to the expo config

App Store Connect: Can't change Primary Locale to nl-NL — 19 historical versions blocked by missing screenshots, API returns 409
 
 
Q