If you are generating stubs (abigen for Golang for example), check that the ABI used is the latest. I was getting Error: Transaction reverted without a reason string because of a mismatch between the real smart contract and the Golang stubs.
Error: Transaction reverted without a reason string