Currently evm_revert seems to delete the saved snapshot itself, which might not be the desirable behavior.
I'm calling evm_snapshot after revert every time for it to work properly.
Edit: The revert stops working after reverting a few times
This is the expected behavior. Consider a snapshot "used up" once you've reverted to that state.
Ran into this issue today until I saw this thread.
I was using truffle to test against a contract. Because of test scripts have dependency, I implemented a manual snapshot - revert workflow to reset to previous state.
Little did I know a reverted snapshot is 'used up', plus truffle secretly utilize and generate new snapshots when running tests, my manually saved snapshot is overwritten by tuffle silently and caused lots of confusion.
If this is expected behaviour, it should at least be documented (one sentence more in the Readme would do the job) as that's not how snapshot semantics usually work.
Most helpful comment
This is the expected behavior. Consider a snapshot "used up" once you've reverted to that state.