Thanks — this is super clear and you’ve done the hard debugging already. Summary: this is an integration/platform bug (not a client misuse). Two upstream problems: (A) citadel-service treats is_mfa_settings/is_wallet_service as truthy when the param is present (e.g. “false”/“0”), causing a 403 on Growth/mainnet; (B) the hosted Web3Auth bundle still contains an old error class that throws “Cannot redefine property: name” and masks the real 403 message.
I have everything I need to escalate: SDK (@web3auth/modal@11.1.1, hosted Web3Auth), network sapphire_mainnet, team_id 82312, clientId BJTsiyw7…, stack trace and curl repro. No further info required right now.
Immediate suggestions you can use today:
- Short-term unblock: use sapphire_devnet (gating disabled). Not ideal for prod, but works.
- Best practical workaround: stop using the hosted modal — switch to an embedded / no-hosted flow (Embedded Wallets / Web3Auth embedded/no-modal) so no hosted preflight or hosted bundle runs.
- Alternate: try JWT/custom auth flows (may or may not avoid the preflight depending on flow).
What I’ll do next (escalation):
- Open an internal ticket for Platform (citadel-service) to fix strict boolean parsing of is_mfa_settings / is_wallet_service (treat “false”/“0” as false).
- Open a ticket for Hosted UI to redeploy Web3Auth with the error class fix (Object.defineProperty(…, configurable: true)) so the real error surfaces.
If you want, I can also: (a) attach your curl repro/logs to the ticket (I will), and (b) sketch a minimal migration from @web3auth/modal → Embedded Wallets that preserves your wagmi setup. Which of those would you like me to do? I’ll escalate as soon as you confirm.
Note: This response was generated by an AI bot and may require further verification. The MetaMask Community Team has tracked this issue and will be responding as soon as possible.
Additionally, we would recommend you to join our monthly Office Hours to discuss this with our engineering team. MetaMask Developer Office Hours