unionlabs/union · error · Error
Wallet does not support standard:connect
Error message
Wallet does not support standard:connect
What it means
The Sui wallet store casts the wallet-standard Wallet to WalletWithFeatures<SuiWalletFeatures> and requires its features["standard:connect"] entry before connecting. If the discovered wallet does not advertise the standard:connect feature, connection is refused with this error. The surrounding class already recorded errorWalletId and persisted state before this point, so the failure is recoverable by picking another wallet.
Source
Thrown at app2/src/lib/wallet/sui/config.svelte.ts:190
const wallet = pickSuiWallet(walletId)
if (!wallet) {
this.connectionStatus = "disconnected"
this.connectedWallet = undefined
this.connectionError = "Wallet not found"
this.errorWalletId = walletId
this.saveToStorage()
return
}
try {
const suiWallet = wallet as WalletWithFeatures<SuiWalletFeatures>
const connectFeature = suiWallet.features["standard:connect"] as {
connect: (input?: { silent?: boolean }) => Promise<{ accounts: readonly unknown[] }>
}
if (!connectFeature) {
throw new Error("Wallet does not support standard:connect")
}
const res = await connectFeature.connect({ silent: false })
const accounts = res?.accounts ?? wallet.accounts
const account = accounts?.[0] as AnyWallet["accounts"][number] | undefined
if (!account) {
throw new Error("No Sui account returned by wallet")
}
this._account = account
this._signer = createSigner(suiWallet, account)
this.address = account.address
this.connectedWallet = walletId
this.connectionStatus = "connected"
wallets.suiAddress = S.decodeOption(Ucs05.SuiDisplay)({
_tag: "SuiDisplay",View on GitHub (pinned to 031785bb6d)
Solutions
- Update or reinstall the wallet extension to a Wallet-Standard-compliant version
- Filter the selectable wallet list on features["standard:connect"] presence so incompatible wallets are never clickable
- Offer well-known Sui wallets (Suiet, Slush, Ethos) as fallback
Example fix
// before
const connectFeature = suiWallet.features["standard:connect"] as {...}
if (!connectFeature) {
throw new Error("Wallet does not support standard:connect")
}
// after (filter in the wallet list instead of failing at connect time)
const connectableWallets = wallets.filter(w =>
typeof (w.features?.["standard:connect"] as { connect?: unknown } | undefined)?.connect === "function"
) Defensive patterns
Strategy: type-guard
Validate before calling
const connectable = Object.keys(wallet.features ?? {}).includes("standard:connect")
if (!connectable) {
notify(`${wallet.name} cannot connect from this app. Update or pick another wallet.`)
return
} Type guard
const supportsStandardConnect = (w: Wallet): w is WalletWithFeatures<SuiWalletFeatures> =>
typeof (w.features?.["standard:connect"] as { connect?: unknown } | undefined)?.connect === "function" Try / catch
try {
await suiWallets.connect(walletId)
} catch (e) {
if (e instanceof Error && e.message.includes("standard:connect")) {
// filter this wallet out of the picker and notify
}
} Prevention
- Filter the wallet picker on features['standard:connect'] presence
- Listen for wallet-standard register events and re-check features when wallets update
- Pin known-good wallet extension versions in e2e tests
When it happens
Trigger: A wallet registered in the wallet-standard registry but lacking standard:connect (e.g. only exposing standard:events); an outdated wallet extension; feature detection racing a wallet still initializing.
Common situations: Niche or outdated Sui browser wallets; wallets that register on install but need an update to fully implement the Wallet Standard.
Related errors
- No Sui account returned by wallet
- Invalid Sui signer: expected Ed25519Keypair
- Not a MoveObject
- No return value from channel_balance
- No return value from compute_salt
AI-assisted analysis of unionlabs/union@031785bb6d (2026-08-16).
Data as JSON: /api/errors/918da0fc36cfcc6d.
Report an issue: GitHub.