I’m encountering a critical error with CoreKit where after a failed transaction signing attempt, the entire CoreKit instance becomes unusable with the error:
Custom factor pub [object Object] not found for tssTag default
Steps to Reproduce:
Initialize CoreKit and login successfully
Perform standard operations (all work fine initially)
Attempt to sign a transaction
Transaction signing fails with the above error
After this failure, ALL subsequent CoreKit operations fail with the same error including:
exportPrivateKey()
Transaction sending
Any other CoreKit methods
Expected Behavior: CoreKit should either recover from the failed signing attempt or provide a way to reset the state without requiring a full re-initialization.
Actual Behavior: CoreKit becomes completely non-functional after the initial signing failure. The error persists across all operations.
Additional Context:
This occurs randomly/intermittently
I suspect there may be a state synchronization issue between local CoreKit and server metadata
The only recovery seems to be completely reinitializing CoreKit
Questions:
Is there a recommended error handling pattern for failed transaction signing?
How can I detect and recover from this desynchronized state?
Are there any known issues with metadata sync that could cause this?
Thanks — this is very helpful and I’m sorry you’re running into it. I’ve pulled together the key details for the support team and a short troubleshooting checklist so we can get you unstuck quickly.
Summary (what you provided)
SDK: MetaMask Embedded Wallets (Web3Auth CoreKit)
SDK Version: ^3.5.0-0 (as stated)
Platform: Web
Network: Mainnet
Error message: “Custom factor pub [object Object] not found for tssTag default”
Behavior: After a failed transaction signing attempt, the CoreKit instance becomes unusable (all CoreKit methods fail until full re-initialization). Occurs randomly/intermittently. Suspected state/metadata desync between local CoreKit and server.
Steps to reproduce you shared: login → normal ops → attempt sign tx → sign fails → ALL subsequent CoreKit ops fail with same error
Immediate questions / items we need from you (these will help the engineering team reproduce and debug — please only send what you can):
Code snippets (copy-paste):
CoreKit initialization code (how you create/init CoreKit)
Login/auth code (how you perform login and session setup)
The transaction-signing call (the exact function and parameters you call when signing)
Browser console: the full stack trace around the error (not only the single line). If possible include network tab entries around any metadata/TSS requests after the failure.
package.json or exact installed versions of relevant packages (web3auth/core, @web3auth/corekit, any tss or threshold libraries used). You wrote ^3.5.0-0 — please confirm the resolved version from package-lock/yarn.lock (or run npm ls @web3auth/corekit and paste result).
Repro frequency and test: can you reproduce reliably in a deterministic way? If intermittent, can you share the last reproduce window/time and any differences in the failing transaction (gas, chain id, contract call vs simple transfer)?
Any screenshots or logs of local storage entries for keys under web3auth/corekit (these sometimes contain the stored factors/metadata). If you can redact secrets and paste the JSON keys it helps.
Quick suggested workarounds you can try now
Try a programmatic recovery flow: after catching the sign error, call your app’s logout + reinitialize CoreKit (basically what you said works currently). If logout is too disruptive, you can at least detect the error and prompt a reinit. This is a pragmatic short-term workaround.
Clear Web3Auth/CoreKit local storage/cache (if acceptable) and re-login. The error message looks like a missing/invalid TSS factor — clearing local cached metadata forces a fresh fetch or re-creation.
Update to the absolute latest CoreKit/Web3Auth versions if you’re not already on them (many intermittent TSS fixes land in patch releases). Please paste your exact resolved versions so we can confirm.
What I suspect (tentative)
The message “Custom factor pub [object Object] not found for tssTag default” looks like code attempted to look up a public factor but got an object that stringified as “[object Object]” instead of the expected key/identifier. That suggests a serialization/state issue (local stored factor metadata corrupted or partial state after a failed signing operation), or a mismatch between client and server metadata schemas.
If the client keeps a reference to an object rather than the ID or if the server-side metadata changed shape, lookups will fail and subsequent ops that rely on that factor will not recover until the local state is reset.
Immediate diagnostic steps the team may ask you to run (if you’re comfortable):
Reproduce the failure while recording the console/network logs, then capture the local storage keys used by CoreKit/Web3Auth (redact any private material).
If possible, create a minimal repro that triggers the error so engineers can reproduce without your app-specific logic.
Builder hub: https://builder.metamask.io
(If you want I can search the CoreKit docs for any mention of a metadata sync or TSS factor APIs and paste direct pointers.)
Next steps from me
If you can paste the snippets/logs/version info above I’ll attach them to the support ticket and highlight the most actionable lines for the engineering team.
If you prefer, paste the package resolution and a minimal init+sign snippet and I’ll try to point to exact code paths where a desync could happen and a more specific recovery pattern.
I appreciate the detailed report — once you share the init/login code and the full console stack trace I’ll escalate this with the engineering team and propose the best fix/path forward. Want to paste the code and console trace now?
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 biweekly Office Hours to get this resolved even faster. MetaMask Developer Office Hours