CloudKit sync fails across TestFlight iOS + macOS builds — “Field recordName is not marked queryable”

I’m running into a CloudKit sync issue that I can’t reconcile after multiple rebuilds, TestFlight uploads, and entitlement verification, and I’m hoping for guidance on what I’m missing or whether this is expected behavior.

Context

  • App: RankSpinnah
  • Platforms: iOS + macOS
  • Distribution: TestFlight
  • Xcode: 26.x
  • Both apps use the same bundle identifier, same container, and same Apple Developer team
  • Automatic signing enabled; Xcode-managed profiles
  • CloudKit capability enabled for both targets

Both builds install and run correctly from TestFlight on:

  • iPhone 17 Pro
  • Apple-silicon Mac (M5 MacBook Pro)

The Problem

CloudKit data does not sync at all between devices.

On both iOS and macOS, CloudKit queries return no records, and I consistently see this error:

Field 'recordName' is not marked queryable

This occurs even when querying for records that should exist and after fresh installs on both devices.

What I’ve Verified

  • Same iCloud account signed in on both devices
  • CloudKit container exists and is enabled
  • App Sandbox enabled with network access
  • CloudKit entitlements present in the signed app (verified from the archived .app)
  • TestFlight builds are using the correct container
  • Rebuilt and re-uploaded after version bump (1.2.0 / build 2026.02.03)
  • Both iOS and macOS apps successfully uploaded and installed via TestFlight

Despite this, no data syncs, and the queryable error persists.

What I’m Unsure About

  • Whether recordName is expected to be non-queryable in production schemas
  • Whether TestFlight + CloudKit requires an explicit production schema deploy beyond what Xcode manages
  • Whether this indicates a schema mismatch between development and production environments
  • Or whether something subtle changed in recent Xcode / CloudKit behavior

Ask

  1. Can someone clarify:
  2. Whether querying by recordName should work in production CloudKit
  3. What specifically causes the “Field recordName is not marked queryable” error in TestFlight builds
  4. What steps are required to ensure CloudKit schemas are correctly deployed for cross-platform sync

At this point I feel like I’m missing one critical step, but I can’t identify what it is.

Thanks in advance for any guidance.

CloudKit sync fails across TestFlight iOS + macOS builds — “Field recordName is not marked queryable”
 
 
Q