-
Notifications
You must be signed in to change notification settings - Fork 142
Description
Describe the bug:
rpc.porto.sh is returning "service is unhealthy", which breaks the merchant-sponsored approval flow. The Approve button in the Porto dialog stays greyed out — users can't confirm transactions.
My merchant endpoint works fine (CORS passes, returns 200), but Route.merchant() forwards wallet_prepareCalls to rpc.porto.sh under the hood. Since the relay is down, it never returns the feePayerDigest, so the dialog never enables the Approve button.
From the user's side: the "Allow spend" dialog renders correctly (shows token, amount, account), but Approve is permanently disabled. Eventually fails with User rejected the request.
curl -s -X POST https://rpc.porto.sh \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"health","id":1}'
# {"jsonrpc":"2.0","id":1,"error":{"code":-32603,"message":"service is unhealthy"}}Link to Minimal Reproducible Example:
https://agorace.vercel.app/ — connect with Porto, click "Start Typing", observe the greyed out Approve button.
Steps To Reproduce:
- Any app using
Route.merchant()withsponsor: trueand the default relay - Porto dialog opens, shows "Allow spend"
- Approve button stays greyed out
- Fails with "User rejected the request"
Or just hit the health endpoint directly:
curl -s -X POST https://rpc.porto.sh \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"health","id":1}'Porto Version: 0.2.37
Viem Version: 2.45.1
Wagmi Version: wagmi@3.4.2
Anything else?
Dialog renders fine — correct token, amount, account address. The problem is purely that the relay is unhealthy so wallet_prepareCalls never succeeds. Tested on Chrome macOS, no wallet extensions.