# uxMode: 'redirect' plan requirement + wallet service 1003 during connectTo() causing Safari popup blocking?

**URL:** <https://builder.metamask.io/t/uxmode-redirect-plan-requirement-wallet-service-1003-during-connectto-causing-safari-popup-blocking/3095>\
**Category:** Embedded Wallets (Web3Auth)\
**Created:** [April 17, 2026, 10:41am UTC](https://builder.metamask.io/t/uxmode-redirect-plan-requirement-wallet-service-1003-during-connectto-causing-safari-popup-blocking/3095 "2026-04-17T10:41:32Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/metamaskbuilderhub/original/2X/9/92b599d3131e78cf3d3ff01b80e54d69d266f8df.png) [@system](https://builder.metamask.io/u/system)\
**Post date:** [April 17, 2026, 10:44am UTC](https://builder.metamask.io/t/uxmode-redirect-plan-requirement-wallet-service-1003-during-connectto-causing-safari-popup-blocking/3095/2 "2026-04-17T10:44:04Z")

</div>

Thanks — this is clear and helpful. Quick answers based on the docs and internal guidance plus a recommended workaround.

SDK: @web3auth/modal v10.15.0 (Web, Next.js) — noted.

1. uxMode: ‘redirect’ and plan

- uxMode:‘redirect’ depends on Web3Auth “Wallet Services” which is a Scale-tier feature. Base and Growth do not enable Wallet Services, so you’ll see code 1003 on those plans.
- If you need an explicit billing/contract exception confirmed, I’ll flag this to the team to verify account-level feature flags.

1. wallet service 1003 during connectTo() and Safari popup blocking

- 1003 can surface not only at init() but also when wallet-related calls trigger wallet-service initialization (e.g., inside connectTo()).
- If the SDK does async recovery/initialization before it opens the auth popup, that async gap can break Safari’s user-gesture requirement and cause the popup to be blocked.
- There’s no public config to fully disable wallet-service checks on Base/Growth — this is a plan-limited capability.

Workarounds / next steps

- Best: upgrade to Scale so you can use uxMode:‘redirect’ natively.
- Code workaround (no plan change): make connectTo() run synchronously within the user gesture, or open a user-initiated window immediately and navigate it later (pattern: const win = window.open(‘about:blank’); await connectTo(…); win.location.href = redirectUrl). This preserves the user gesture for Safari.
- Test in Safari with a click handler that calls connectTo directly; capture console + network traces if you want me to review.

If you want, I’ll escalate to the billing/engineering contact to confirm plan-flag behavior for your dashboard project and check whether any account-level opt-outs exist.

> 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](https://builder.metamask.io/t/metamask-developer-office-hours/2544/1)

---

_[View the full topic](https://builder.metamask.io/t/uxmode-redirect-plan-requirement-wallet-service-1003-during-connectto-causing-safari-popup-blocking/3095)._
