Hello,
I'm hitting a persistent CKQuerySubscription save failure on the
public database in my Production CloudKit container. I want to flag
this is NOT the iOS 26.4 silent-push regression resolved in 26.4.1
(I've confirmed it manifests differently and on devices that
predate that bug).
App: Win 10 Min (com.luiz.PandaApp)
Container: iCloud.com.luiz.PandaApp
Current shipping version: 3.2.1 build 420 (approved 2026-05-19)
Public database
THE ERROR (captured from CKError.userInfo)
CKErrorCode 12 (badRequest)
CKInternalErrorDomain code 2006 ("BadSyntax")
ServerErrorDescription: "attempting to create a subscription in
a production container"
Execution time per failed attempt: 45-90ms (gateway-level rejection,
not data validation).
CODE
let subscription = CKQuerySubscription(
recordType: "GuardianRequest",
predicate: NSPredicate(format: "guardianRecordName == %@", me),
subscriptionID: "guardian-incoming-(me)",
options: [.firesOnRecordCreation]
)
let info = CKSubscription.NotificationInfo()
info.shouldSendContentAvailable = true
subscription.notificationInfo = info
try await container.publicCloudDatabase.save(subscription)
The .save() throws every time.
REPRODUCES ACROSS
iPhone on iOS 26.4.2 (i.e., has the 26.4.1 CloudKit regression fix)
iPhone on iOS 18.6.x (predates the 26.4 regression entirely)
Multiple distinct Apple IDs / userId hashes
Fresh installs via TestFlight
Updated installs from production
CONSISTENTLY: USER_ERROR / BAD_REQUEST. Same error every time.
WHY THIS ISN'T THE iOS 26.4 REGRESSION (Thread 820562)
That regression caused silent notifications to be DROPPED client-side
AFTER successful subscription creation. Our failure is SubscriptionCreate
itself being rejected by the CloudKit server before any subscription
exists. Different layer, different symptom. iOS 18.6.x devices also fail
(they never had the 26.4 token-validation regression code).
CLOUDKIT CONSOLE LOGS (sample request UUIDs Apple engineers can lookup)
EB30E9D0-8C97-4685-BD16-3E79B3328D6F (2026-05-17 8:08 UTC)
EEAA0606-5B50-4640-A950-EEA33B790B8E (2026-05-17, captured in-app)
EB4C90CE-9172-4942-B00F-DE4A28388FBA (2026-05-19 7:18 UTC, iOS 18.6.x)
F2DF69D9-2339-437A-B59B-7FBD4D57442F (2026-05-19 7:51 UTC, iOS 26.4.x)
CloudKit Console → Production → Subscriptions: 0 entries despite 70+
attempts since 2026-05-11.
WHAT I'VE VERIFIED / TRIED
Schema: GuardianRequest.guardianRecordName and
GuardianResponse.requesterRecordName both have QUERYABLE indexes
in the Production schema (confirmed in Console).
Field types: all STRING.
aps-environment entitlement: "production" (changed from "development"
in build 420; no change in error pattern).
Push Notifications capability: enabled on App ID in Developer Portal
AND in Xcode Signing & Capabilities for the main app target.
UIBackgroundModes: includes "remote-notification".
Re-deployed Production schema from Development on 2026-05-19
(Console reported "no changes"; failure pattern unchanged).
Tried with and without info.desiredKeys = [].
RecordQuery operations on the same fields and record types in the
same container succeed consistently.
QUESTIONS
Is there a known infrastructure issue affecting public database
CKQuerySubscription creation that is distinct from the iOS 26.4
regression (thread 820562)?
Is there a per-container configuration that may be in an unexpected
state, and if so what should I check?
Are there workarounds beyond schema redeployment that have helped
other developers in similar situations?
Thanks for any guidance.
4
0
90