Execution reverted: TimelockController: underlying transaction reverted"

Hello guys .
i am using openzepellin Govenance Wizard contract & openzepellin TimelockController .
i am getting this error
execution reverted: TimelockController: underlying transaction reverted"

My function arguments are
Propose = ["ERC token addrerss"],[0],["0x00"],"hello"]
Queue = ["ERC20 token Address"],[0], ["0x00"],"hash of hello"]

Execute = ["ERC 20 token address"],[0],["0x00"],"hash of hello"]
when i call execute function i get error :
execution reverted: TimelockController: underlying transaction reverted"

can anyone help me out ? what will be the flow after it with timelockController ?

i have passed executor and propoesers role to MyGovernor & admin address

ERC20 token address (Rinkyby testnet)

MyGovernor contract

Timelock contract


1 Like

Hello @saif11226

Your proposal ["ERC token addrerss"],[0],["0x00"],"hello"] is asking the timelock to send a transaction, with calldata 0x00 (not that is is not empty calldata, its exactly 1 empty byte) to the ERC token address.

This doesn't look like valid calldata.... and indeed, the timelock is telling you that sending that the token did not accept these parameters and that the transaction reverted.

Do you have any fallback function in your token contract? What are you trying to have the proposal do on the token ?

thanks for reply my query

can you check it out my function again its giving this error

the function with parameters

Query = ["erc token address"],[1],


"hash of string" ]

the error is

i am making proposal to transfer tokens from admin address to some other address.

Propose : taget (erc20 address), values [1], calldata bytes (
0x23b872dd000000000000000000000000dd27ca90ff02c6a20aad6081e066105b5437f7c300000000000000000000000098ee22da0e904eebea6588c5062bd070f047e50d00000000000000000000000000000000000000000000000000000000000007d0 )

description ( hello )

can you please help me out ?


Did you ever figure this out?


feeling the same pain here. Did you ever got a solution?

In my case was an access control poorly done. The function allowed access from DAO executor (timelock) but inside this function another function was called that did not allowed DAO executor.

I got the same issue above. Looks like the issue come from TimeLockController that cannot execute the proposal although I've proposed, voted and queued the proposal before executing it.

Can anyone help to give us you solution for resolving this?

Nevermind, I found the problem is I must grant MINTER_ROLE for TimeLock contract instead of Governor contract. It works well now!

I had the same issue, I resolved it by transferring ownership of the contract I wanted to be executed (box in the example) to the timelock contract

How do you set the minter role?