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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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