Skip to content

rpc.porto.sh relay returning "service is unhealthy" — merchant-sponsored approvals broken #1056

@0xDirmes

Description

@0xDirmes

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:

  1. Any app using Route.merchant() with sponsor: true and the default relay
  2. Porto dialog opens, shows "Allow spend"
  3. Approve button stays greyed out
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions