Using require helps in validating user inputs before an action can be taken. However, it seems not many options exist to handle the scenario when require indeed returns false. The example mentioned in this answer uses Events that are fired after testing an if condition. This answer bluntly says that it is not possible to handle revert (even though the question was about require) from the front-end.

So, is it possible to consume a require false outcome at all? Or, can it be piped into an Event that can be consumed in a web3.js client?

  • 1
    From a web3,js client, you can very easily invoke and handle a function-call which triggers require(<false condition>), if that's what you mean. I do that all the time (as part of testing and verification). Commented May 2, 2018 at 10:43

2 Answers 2


When you require / assert / revert everything that was done or would be done in the function is rolled back, that includes Events as well.

So, no, if a require / revert / assert happens there's no way to inform or return anything useful to handle the error.

As I mentioned in another similar question, you will need to check for this potential errors client-side as well so you can prevent the contract from reaching such a state. (E. G.: if a function requires that msg.sender == owner, in the front-end if the logged user is not the owner, disable/hide the button that calls this contract function)

  • Ok. Suppose a contract depended on another contract that had a require failure. This cannot be handled by front end. How does one deal with such a scenario? Commented Nov 7, 2017 at 11:58
  • 1
    You just can't. The execution will fail and the user will not know why. The best you can do is to explain as well as possible under what conditions a certain function might fail. Commented Nov 7, 2017 at 12:39

Error reason strings for revert and require has been introduced in solidity 0.4.22. You can define the reason of revert and require. With some bug fixes, latest version of solidity is 0.4.23.

For more details: https://medium.com/secureblocks/solidity-0-4-22-enhancements-94d2b9b8b6fe

  • 1
    How can you access these errors from web3 though? Commented Jul 9, 2018 at 17:48
  • @Makaronodentro this is not posssible yet, work is in progress for this. Although on Remix you can see the error reason string.
    – Aniket
    Commented Jul 17, 2018 at 10:53
  • is it possible to access there errors from web3 now? @Aniket
    – deju
    Commented Apr 24, 2019 at 11:54
  • @deju It is supported by truffle too but web3 looks to support it in 1.0 stable release targetting on 30th june. Follow this for updates: github.com/ethereum/web3.js/issues/1707
    – Aniket
    Commented Apr 24, 2019 at 12:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.