No registered relayers

I’ve been trying to debug this error:

Rejected relayTransaction call with reason: no registered relayers

Before this error is thrown I do see:

fetchRelaysAdded: found unique relays: ["0x889e835975c2A1e3A96e98a6aD4aaA4AE84eE4Ee","0xb7F95c376E54171841B3881a387967DdC1E9106D"]

I’m not sure if I need to deploy my own relayer or if there is something else wrong. Has anyone seen this before?

you don’t have to deploy a relayer: you should be able to connect to existing ones.
On which network did it happen?

Currently on Rinkeby. I haven’t had to specify specific relayers in the past, the gsn lib would connect to whichever relayers it could. Is there a place to check on the health of the Rinkeby (or any env) relayers?

If you look at (and the relays status at, You’ll see the new 2.2 relayers active on all networks.
For this new release, we had to make some contract changes, and thus it is incompatible with the old 2.0 release.

The old active relayers are still visible at
There are still active 2.0 relayers on kovan and ropsten.

I suggest you switch to the new 2.2 provider, RelayHub and relayers.

1 Like

It will be good to have old relays active for a while to allow time for migration, this changes broke my app on rinkeby.

You’re right.
I re-started the rinkeby relayer for now. sorry for the trouble.

Do you mind me asking what it takes to migrate? Do I need to redeploy my contracts?

You do need to reference the new forwarder.
So for a target (RelayRecipient), that the only change, so if you have an API to modify the forwarder, you don’t need to redeploy.

Paymasters usually just need to recompile, unless you modified the gas limits: the getGasLimits() method was replaced with getGasAndDataLimits() and return one extra parameter (maximum callData size, which defaults to 10k)

1 Like

For RelayRecipient, we also need to update the versionRecipient function, right?

1 Like