Phantom ghost-rejects valid transactions on devnet (popup doesn't load fully, error 4001) #474
Unanswered
tdk333
asked this question in
Help & Support
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Hey team,
I've been hitting an intermittent issue where Phantom auto-rejects transactions on devnet after popup first starts to load then doesn't fully load. The user never gets a chance to approve or deny — it just fires back error 4001 ("User rejected the request") on its own.
Setup
solana:signAndSendTransactionfeature)What happens
When calling
signAndSendTransactionthrough the wallet-standard interface, Phantom intermittently returns error 4001 without the approval popup fully loading.The transaction itself is valid — simulating the exact same unsigned transaction on our Helius RPC with
sigVerify: falsepasses every time.Stack trace:
What I've ruled out
sigVerify: falseon Helius passes consistently after every rejectionchain: 'solana:devnet'(noticed Phantom reportssolana:mainnetfirst inaccount.chainseven when set to devnet)signAndSendTransactionexclusively per Phantom's docs sincesignTransactionisn't supported in the wallet-standard implementationWhat I think is happening
It seems like Phantom runs an internal simulation before rendering the approval popup. If that simulation is slow or fails (devnet RPC latency?), Phantom auto-rejects with 4001 before the user can interact. Since the same transaction simulates fine on other RPCs, the issue seems to be on Phantom's side — either devnet simulation infrastructure or some kind of timeout in the popup rendering pipeline.
The behavior is timing-dependent. It works more reliably when the popup renders quickly, and fails more often under load or when there's any delay.
Questions
This started happening suddenly after months of it working fine. No changes on our end — even old code on old programs reproduces it now. Something seems to have changed upstream.
Any help appreciated.
Example
No response
Steps to Reproduce
To reproduce
signAndSendTransactionthrough thesolana:signAndSendTransactionfeaturePhantom Version
No response
Is there an existing discussion for this?
Beta Was this translation helpful? Give feedback.
All reactions