Invocation of onSnapshotConsensusResult may throw an exception due to improper error handling by the metagraph developer. If an exception is thrown the underlying consensus process enters a stalled state and the ML0 application must be restarted to recover.
Changes
Add error handling to log the exception and return an effect for the state advancement
Testing
Tested against a local metagraph with exceptions during onSnapshotConsensusResult and consensus process is no longer stalled
Summary
Invocation of
onSnapshotConsensusResult
may throw an exception due to improper error handling by the metagraph developer. If an exception is thrown the underlying consensus process enters a stalled state and the ML0 application must be restarted to recover.Changes
Testing
onSnapshotConsensusResult
and consensus process is no longer stalled