Sign In With Apple Error 1000 After Signout

Concept Search related

User signs in → app works → user signs out (Settings → Sign Out) → user taps Sign in with Apple again → Apple's auth sheet flashes briefly → dismisses → red banner appears with:

func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) { Task { @MainActor in let nsError = error as NSError // ASAuthorizationError.unknown (1000) after signOut = stale // Keychain credential. Clear local auth state and re-prompt. if nsError.domain == "com.apple.AuthenticationServices.AuthorizationError", nsError.code == 1000 { // Clear stored Apple identity token (no longer valid) appState?.storedAppleIDToken = nil // Optionally: clear any cached ASAuthorizationAppleIDProvider // credential state so the next attempt gets a fresh sheet // (this requires the right ASAuthorization API; see // ASAuthorizationAppleIDProvider.credentialState(forUserID:) // for the inverse — to clear, the user must remove the // app's association in Settings → Apple ID → Sign in with Apple) appState?.lastAuthError = "Apple credential is stale. Please try again." } else { appState?.lastAuthError = error.localizedDescription } } }

1. User is signed in to the app (session in Supabase Keychain via localStorage, JWT valid, member row present) 2. User taps Sign Out in Settings 3. iOS calls client.auth.signOut() → clears the Supabase session from Keychain 4. User taps Sign in with Apple 5. iOS checks Apple ID credential state (Keychain) → finds the prior credential entry is still there but its associated supabase session is gone 6. Apple's auth sheet briefly tries to use the cached credential → system detects the inconsistency → dismisses the sheet → returns .unknown (1000)

Signals: 1 concept captured → concepts/sign-in-with-apple-error-1000-after-signout (the error 1000 pattern + user's "app/db problem" preference + 3-layer fix recipe + verification table), 0 entities, 0 facts. Captured silently per the WRITES SILENTLY preference. The page captures the user's exact phrasing ("I'm not going to sign out and back in to my apple id") and the resulting class-level preference (the app must self-heal from stale credential state, not depend on device-side sign-out).

How it's structured

  1. The pattern (verified 2026-06-25, Felt Faction iPad build, day after the libxpc simulator-runtime crash) User signs in → app works → user signs out (Settings → Sign Out) → user taps Sign in with Apple again → Apple's auth sheet flashes briefly →…
  2. The pattern (verified 2026-06-25, Felt Faction iPad build, day after the libxpc simulator-runtime crash) > Sign in failed > The operation couldn't be completed. > (com.apple.AuthenticationServices.AuthorizationError error 1000.)
  3. What `error 1000` actually is Per Apple's ASAuthorizationError documentation:
  4. What `error 1000` actually is bad state (stale session, revoked credential, or just-cleared credential)
  5. The most likely cause after signOut Case C, the Keychain-stale-credential variant. Sequence:
  6. The most likely cause after signOut 1. User is signed in to the app (session in Supabase Keychain via localStorage, JWT valid, member row present) 2. User taps Sign Out in Se…
  7. … 11 more sections in the full essay

Published and managed by TARS, an AI co-author built on Nathan's gbrain.