Skip to content

personal-email-domains list is missing private.icloud.com (new Sign in with Apple relay domain) #9504

Open

Description

@otisz22

Context

Reported by Ottó Misák via GitHub issue #9504, found with a scanner that checks public repos against upcoming platform deadlines.

Apple announced on 2026-08-24 that "starting later this year, new Sign in with Apple addresses, previously issued on privaterelay.appleid.com, will be issued on private.icloud.com" (Apple Developer news). Existing @privaterelay.appleid.com addresses keep working; only newly issued ones move. Apple has published no exact switch date, so this is time-bound but not yet live.

The reporter offered to open a PR instead — reply on the GitHub issue if we'd prefer that.

Problem

PERSONAL_EMAIL_DOMAINS lists privaterelay.appleid.com but not private.icloud.com. Matching is an exact lookup in a Set, not a suffix match, so once Apple switches, new Sign in with Apple relay addresses will no longer be classified as personal and will pass the Cloud sign-up gate that the old relay domain is blocked by.

iCloud+ Hide My Email stays on icloud.com (already listed), so only Sign in with Apple relay addresses are affected.

Root cause / where to look

  • apps/web/modules/auth/lib/personal-email-domains.ts:37 — the curated list; "privaterelay.appleid.com" sits under the // Apple group, "private.icloud.com" is missing.
  • apps/web/modules/auth/lib/signup-email-domain.ts:18-21 — blockedEmailDomains is a Set built from PERSONAL_EMAIL_DOMAINS ∪ disposable-email-domains; isBlockedEmailDomain does blockedEmailDomains.has(domain) on the exact domain (after lowercasing and stripping trailing FQDN dots). No subdomain or suffix matching, which is why icloud.com being present does not cover private.icloud.com.
  • Consumers of the gate: isSignupEmailDomainBlocked → modules/auth/signup/actions.ts, modules/auth/lib/credential-signup-backstop.ts, modules/ee/sso/lib/sso-provisioning.ts. Cloud-only (IS_FORMBRICKS_CLOUD), so self-hosted is unaffected either way.

Done when

  • "private.icloud.com" is in PERSONAL_EMAIL_DOMAINS under the Apple group, next to privaterelay.appleid.com.
  • isBlockedEmailDomain("test@private.icloud.com") returns true — add the address to the existing "returns true for known free / personal providers" case in apps/web/modules/auth/lib/signup-email-domain.test.ts:30-60, beside test@privaterelay.appleid.com.
  • privaterelay.appleid.com stays listed — existing relay addresses keep working, so both domains must be blocked, not one swapped for the other.
  • pnpm test --filter=@formbricks/web passes (signup-email-domain.test.ts).

Activity

  1. PalakshiVerma commented on Oct 8, 2026

    @PalakshiVerma

    Hi! I'd like to work on this issue .

    I noticed there is currently no assignee or linked PR, and I'd be happy to implement the proposed fix and add the regression test.

    If that's okay, I'll work on it and open a PR. Thanks!

  2. otisz22 commented on Oct 8, 2026

    @otisz22
    Author

    Thanks @PalakshiVerma, that would be great! From my side as the reporter, please go ahead (the maintainers have the final say on assignment, of course). Happy to test the fix against a Sign in with Apple relay address once the PR is up.

  3. PalakshiVerma commented on Oct 8, 2026

    @PalakshiVerma

    Hi! I’ve completed the fix for #9504.

    I added private.icloud.com to the personal email domain blocklist and added a corresponding test. The focused test suite passes: 15/15 tests.

    My branch is ready: PalakshiVerma:fix-private-icloud-domain-9504

    GitHub is currently preventing me from opening the PR because PR creation is restricted to repository collaborators. Please let me know if you’d like me to proceed another way.

  4. Rakshaad-Kolhe commented on Oct 16, 2026

    @Rakshaad-Kolhe

    Hi! I also prepared and tested a fix for this issue before #9570 was closed as a duplicate.

    I noticed another contributor has also prepared a fix. I’m sharing mine for reference so the maintainers can use whichever implementation best fits the project. I understand PR creation is currently restricted, and I’m happy to follow the approved contribution process.

    Thanks!

  5. hardikkaurani commented on Oct 19, 2026

    @hardikkaurani

    Hi @Dhruwang @pandeymangg,

    I have prepared the fix and test coverage for #9504:

    • Changes:

      • Added "private.icloud.com" to PERSONAL_EMAIL_DOMAINS in apps/web/modules/auth/lib/personal-email-domains.ts under the Apple relay group next to privaterelay.appleid.com.
      • Added test case verifying isBlockedEmailDomain("test@private.icloud.com") returns true in apps/web/modules/auth/lib/signup-email-domain.test.ts.
    • Branch: hardikkaurani:fix/apple-private-icloud-domain-9504

    • Commit: 6442f49

    As repository settings currently restrict PR creation from forks to collaborators, please feel free to invite me as a contributor so I can submit the PR directly, or cherry-pick this commit into a PR. Thank you!

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions