Skip to content

Error when trying to sync Tap to Pay on iPhone capability #4178

Description

@alex-fournier

Build/Submit details page URL

No response

Summary

My Expo app declares the following entitlements :

entitlements: {
  'com.apple.developer.proximity-reader.payment.acceptance': true,
}

eas build fails on the capability syncing step. It seems that the capability name for Tap to Pay is PR06102F2 on Apple side but EAS Build tries to PATCH TAP_TO_PAY_ON_IPHONE.

Managed or bare?

managed

Environment

  expo-env-info 2.1.0 environment info:
    System:
      OS: macOS 26.5.2
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 24.16.0 - /Users/afournier/.nvm/versions/node/v24.16.0/bin/node
      Yarn: 1.22.22 - /Users/afournier/.nvm/versions/node/v24.16.0/bin/yarn
      npm: 11.13.0 - /Users/afournier/.nvm/versions/node/v24.16.0/bin/npm
    Managers:
      CocoaPods: 1.16.2 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 25.5, iOS 26.5, macOS 26.5, tvOS 26.5, visionOS 26.5, watchOS 26.5
      Android SDK:
        API Levels: 33, 35, 36, 36
        Build Tools: 34.0.0, 35.0.0, 36.0.0, 36.1.0, 37.0.0
        System Images: android-36 | Google Play ARM 64 v8a
    IDEs:
      Android Studio: 2026.1 AI-261.23567.138.2611.15646644
      Xcode: 26.6/17F113 - /usr/bin/xcodebuild
    npmPackages:
      babel-preset-expo: ~55.0.8 => 55.0.22 
      expo: ~55.0.25 => 55.0.26 
      expo-updates: ~55.0.23 => 55.0.24 
      react: 19.2.0 => 19.2.0 
      react-native: 0.83.6 => 0.83.6 
    npmGlobalPackages:
      eas-cli: 21.8.0
    Expo Workflow: managed
19/19 checks passed. No issues detected!

Error output

✔ Bundle identifier registered com...appid
- Syncing capabilities
POST https://developer.apple.com/services-account/v1/bundleIds/BUNDLEID/bundleIdCapabilities
200 OK (POST https://developer.apple.com/services-account/v1/bundleIds/BUNDLEID/bundleIdCapabilities)
Current remote capabilities:
[
  {
    "context": {
      "providerId": PROVIDERID,
      "teamId": "TEAMID"
    },
    "id": "BUNDLEID_IN_APP_PURCHASE",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": null,
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "4e38194d-e809-4651-9ae4-ffba6253fe5f"
    }
  },
  {
    "context": {
      "providerId": PROVIDERID,
      "teamId": "TEAMID"
    },
    "id": "BUNDLEID_PR06102F2",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": null,
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "4e38194d-e809-4651-9ae4-ffba6253fe5f"
    }
  },
  {
    "context": {
      "providerId": PROVIDERID,
      "teamId": "TEAMID"
    },
    "id": "BUNDLEID_PUSH_NOTIFICATIONS",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": null,
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "4e38194d-e809-4651-9ae4-ffba6253fe5f"
    }
  }
]

Current local entitlements:
{
  "com.apple.developer.proximity-reader.payment.acceptance": true,
  "aps-environment": "development"
}
Will enable remote capability: com.apple.developer.proximity-reader.payment.acceptance (Tap to Pay on iPhone).
Will skip remote capability: aps-environment (Push Notifications).
Existing to disable:  [ 'BUNDLEID_IN_APP_PURCHASE', 'BUNDLEID_PR06102F2' ]
Patch Request: [ { capabilityType: 'TAP_TO_PAY_ON_IPHONE', option: 'ON' } ]
PATCH https://developer.apple.com/services-account/v1/bundleIds/BUNDLEID
Error: Request failed with status code 409 (PATCH https://developer.apple.com/services-account/v1/bundleIds/BUNDLEID)
Failed to patch capabilities: [ { capabilityType: 'TAP_TO_PAY_ON_IPHONE', option: 'ON' } ]
✖ Failed to sync capabilities com...appid
Failed to update Apple capabilities for app "com...appid".
You can enable or disable capabilities manually in the Apple developer console at https://developer.apple.com/account/resources/identifiers/bundleId/edit/BUNDLEID, then re-run this command.
Auto capability syncing can be disabled with the environment variable `EXPO_NO_CAPABILITY_SYNC=1`.

Apple API error: The provided entity includes a relationship with an invalid value - The provided entity includes a relationship with an invalid value
Error: Failed to update Apple capabilities for app "com...appid".
You can enable or disable capabilities manually in the Apple developer console at https://developer.apple.com/account/resources/identifiers/bundleId/edit/BUNDLEID, then re-run this command.
Auto capability syncing can be disabled with the environment variable `EXPO_NO_CAPABILITY_SYNC=1`.

Apple API error: The provided entity includes a relationship with an invalid value - The provided entity includes a relationship with an invalid value
    at syncCapabilitiesForEntitlementsAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/bundleIdCapabilities.js:53:29)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async syncCapabilitiesAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:112:39)
    at async ensureBundleIdExistsWithNameAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:82:9)
    at async ensureBundleIdExistsAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:26:5)
    at async AppStoreApi.ensureBundleIdExistsAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/AppStoreApi.js:43:9)
    at async SetUpTargetBuildCredentials.runAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/actions/SetUpTargetBuildCredentials.js:19:13)
    at async SetUpBuildCredentials.runAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/actions/SetUpBuildCredentials.js:50:60)
    at async IosCredentialsProvider.getRemoteAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/IosCredentialsProvider.js:51:16)
    at async IosCredentialsProvider.getCredentialsAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/IosCredentialsProvider.js:36:32) {
  cause: UnexpectedAppleResponse: The provided entity includes a relationship with an invalid value - The provided entity includes a relationship with an invalid value
      at l.parseResponse (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:850721)
      at l.requestAndParseAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:849106)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async l.fetchSingleModelAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:848829)
      at async l.patchModelAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:848935)
      at async l.updateBundleIdCapabilityAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:950763)
      at async syncCapabilitiesForEntitlementsAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/bundleIdCapabilities.js:43:13)
      at async syncCapabilitiesAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:112:39)
      at async ensureBundleIdExistsWithNameAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:82:9)
      at async ensureBundleIdExistsAsync (/Users/afournier/.nvm/versions/node/v24.16.0/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:26:5) {
    errorInfo: 'The provided entity includes a relationship with an invalid value - The provided entity includes a relationship with an invalid value',
    data: { errors: [Array] }
  }
}
    Error: build command failed.

Reproducible demo or steps to reproduce from a blank project

nope

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs reviewIssue is ready to be reviewed by a maintainer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions