Summary
- Firefox rejects credentialed cross-origin requests (e.g. from bsky.app to eurosky.social) when Access-Control-Allow-Headers is *, because per the Fetch spec the wildcard is not treated as a wildcard when credentials are involved
- Affected endpoints: getSession, createSession, createAccount, describeServer, updateEmail, OAuth sign-in โ all routes proxied through the gatekeeper
- The PDS reference implementation uses the Express cors package with default config, which reflects the browser's Access-Control-Request-Headers back verbatim rather than sending * https://github.com/bluesky-social/atproto/blob/main/packages/pds/src/index.ts#L161
- Switch from .allow_headers(Any) to .allow_headers(AllowHeaders::mirror_request()) to match that behaviour
LGTM! Thank you!