useDApp icon indicating copy to clipboard operation
useDApp copied to clipboard

multicall error response data is empty, useCall error is undefined

Open Yuripetusko opened this issue 2 years ago • 8 comments

I am calling useCall on moonbaseAlpha chain, it is using their multicall contract defined in useDapp code. When the function returns error, I get error thrown in browser console from rpc, I also get error code in rpc response payload, but useCall doesn't return any error

rpc response:

{"jsonrpc":"2.0","error":{"code":-32603,"message":"VM Exception while processing transaction: revert","data":""},"id":100}

Browser error:

Error: missing revert data in call exception; Transaction reverted without a reason string [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (error={"reason":"processing response error","code":"SERVER_ERROR","body":"{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32603,\"message\":\"VM Exception while processing transaction: revert\",\"data\":\"\"},\"id\":85}\n","error":{"code":-32603,"data":""},"requestBody":"{\"method\":\"eth_call\",\"params\":[{\"to\":\"0x4e2cfca20580747adba58cd677a998f8b261fc21\",\"data\":\"0x252dba42000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000093dceea2e035090f4b18b0723cfa456423814bfb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024ffc9896b000000000000000000000000fbea1b97406c6945d07f50f588e54144ea8b684f0000000000000000000000000000000000000000000000000000000000000000000000000000000093dceea2e035090f4b18b0723cfa456423814bfb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024f2b0a55d000000000000000000000000000000000000000000000000000000000000592900000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffd2aad7f60626608fa4a5d34768f7892d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000fbea1b97406c6945d07f50f588e54144ea8b684f0000000000000000000000000000000000000000000000000000000000000000000000000000000093dceea2e035090f4b18b0723cfa456423814bfb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c0ea1f11000000000000000000000000000000000000000000000000000000000000592900000000000000000000000000000000000000000000000000000000\"},\"0x202577\"],\"id\":85,\"jsonrpc\":\"2.0\"}","requestMethod":"POST","url":"https://rpc.api.moonbase.moonbeam.network/"}, data="0x", code=CALL_EXCEPTION, version=providers/5.6.4)
    at Logger.makeError (index.js?dd68:219:1)
    at Logger.throwError (index.js?dd68:228:1)
    at checkError (json-rpc-provider.js?8679:59:1)
    at JsonRpcProvider.eval (json-rpc-provider.js?8679:518:1)
    at Generator.throw (<anonymous>)
    at rejected (json-rpc-provider.js?8679:6:42)

and yet error is undefined returned from useCall

Yuripetusko avatar May 05 '22 15:05 Yuripetusko

It seems that you made a call with incorrect arguments or to wrong contract address or wrong chain.

mj426382 avatar Jun 09 '22 06:06 mj426382

@mj426382 Seeing the same behavior, the real problem is not why the call failed, it's that useCall does not report the error properly and as such, there is no way to inform the user that something went wrong.

maoueh avatar Jun 15 '22 01:06 maoueh

Ok after different tries, this problem is not consistent and seems to happen mostly after some navigation within the site and not directly after a hard page refresh.

maoueh avatar Jun 15 '22 01:06 maoueh

Had the same issue here. The calls we made to the multicall contract are the same every time. However, we will see the error mentioned by Yuripetusko periodically.

charlesAuthentik avatar Jun 23 '22 15:06 charlesAuthentik

Does the issue still persist in the latest version of useDApp (v1.0.15)?

yivlad avatar Jun 28 '22 10:06 yivlad

I am still having this issue running on Hardhat. Current config:

const config: Config = {
  networks: [Hardhat],
  readOnlyChainId: Hardhat.chainId,
  readOnlyUrls: {
    [Hardhat.chainId]: "http://127.0.0.1:8545",
  }
}

any ideas?

heycryptobob avatar Sep 22 '22 10:09 heycryptobob

We're working on detecting the actual error better. (Note that it will properly work only with Multicall v2).

cc @jakvbs

this problem is not consistent

we will see the error mentioned by Yuripetusko periodically

This makes the problem difficult, so as much info as possible is appreciated.

@heycryptobob Is the problem also happening periodically and not consistently? Do you see any pattern?

rzadp avatar Sep 23 '22 11:09 rzadp