{"record":{"id":"918da0fc36cfcc6d","repo":"unionlabs/union","slug":"wallet-does-not-support-standard-connect","errorCode":null,"errorMessage":"Wallet does not support standard:connect","messagePattern":"Wallet does not support standard:connect","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"app2/src/lib/wallet/sui/config.svelte.ts","lineNumber":190,"sourceCode":"    const wallet = pickSuiWallet(walletId)\n\n    if (!wallet) {\n      this.connectionStatus = \"disconnected\"\n      this.connectedWallet = undefined\n      this.connectionError = \"Wallet not found\"\n      this.errorWalletId = walletId\n      this.saveToStorage()\n      return\n    }\n\n    try {\n      const suiWallet = wallet as WalletWithFeatures<SuiWalletFeatures>\n      const connectFeature = suiWallet.features[\"standard:connect\"] as {\n        connect: (input?: { silent?: boolean }) => Promise<{ accounts: readonly unknown[] }>\n      }\n\n      if (!connectFeature) {\n        throw new Error(\"Wallet does not support standard:connect\")\n      }\n\n      const res = await connectFeature.connect({ silent: false })\n      const accounts = res?.accounts ?? wallet.accounts\n      const account = accounts?.[0] as AnyWallet[\"accounts\"][number] | undefined\n\n      if (!account) {\n        throw new Error(\"No Sui account returned by wallet\")\n      }\n\n      this._account = account\n      this._signer = createSigner(suiWallet, account)\n      this.address = account.address\n      this.connectedWallet = walletId\n      this.connectionStatus = \"connected\"\n\n      wallets.suiAddress = S.decodeOption(Ucs05.SuiDisplay)({\n        _tag: \"SuiDisplay\",","sourceCodeStart":172,"sourceCodeEnd":208,"githubUrl":"https://github.com/unionlabs/union/blob/031785bb6dc6b957c624e62bc64c184409c97d7b/app2/src/lib/wallet/sui/config.svelte.ts#L172-L208","documentation":"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.","triggerScenarios":"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.","commonSituations":"Niche or outdated Sui browser wallets; wallets that register on install but need an update to fully implement the Wallet Standard.","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"],"exampleFix":"// before\nconst connectFeature = suiWallet.features[\"standard:connect\"] as {...}\nif (!connectFeature) {\n  throw new Error(\"Wallet does not support standard:connect\")\n}\n\n// after (filter in the wallet list instead of failing at connect time)\nconst connectableWallets = wallets.filter(w =>\n  typeof (w.features?.[\"standard:connect\"] as { connect?: unknown } | undefined)?.connect === \"function\"\n)","handlingStrategy":"type-guard","validationCode":"const connectable = Object.keys(wallet.features ?? {}).includes(\"standard:connect\")\nif (!connectable) {\n  notify(`${wallet.name} cannot connect from this app. Update or pick another wallet.`)\n  return\n}","typeGuard":"const supportsStandardConnect = (w: Wallet): w is WalletWithFeatures<SuiWalletFeatures> =>\n  typeof (w.features?.[\"standard:connect\"] as { connect?: unknown } | undefined)?.connect === \"function\"","tryCatchPattern":"try {\n  await suiWallets.connect(walletId)\n} catch (e) {\n  if (e instanceof Error && e.message.includes(\"standard:connect\")) {\n    // filter this wallet out of the picker and notify\n  }\n}","preventionTips":["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"],"tags":["sui","wallet-standard","connect"],"backgroundTag":null,"analyzedSha":"031785bb6dc6b957c624e62bc64c184409c97d7b","analyzedAt":"2026-08-16T06:24:09.996Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}