Code Quiz

Runtime Version Policy Breaks OTA

A team's JS-only OTA fixes stop reaching users after each store release because of a runtime version policy choice.

Codejavascript
// app.config.js
// Goal: ship JS-only OTA patches to users on the current store build
export default {
  expo: {
    name: "PhotoShare",
    version: "2.4.1",
    runtimeVersion: {
      policy: "appVersion"
    },
    updates: {
      url: "https://u.expo.dev/abc-123",
      fallbackToCacheTimeout: 0
    },
    ios: { buildNumber: "12" },
    android: { versionCode: 12 }
  }
};

// eas.json build profile
// "production": { "channel": "production" }

// Each store submission bumps version (2.4.1 -> 2.4.2).
// After that, `eas update --channel production` no longer reaches old installs.

OTA updates stop reaching users after the next store release. What is the bug in this configuration?