go/consensus/api/submission: Always clear nonce on error #5972
+5
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In tests, some key managers occasionally register later than expected. This occurs because the VRFProve transaction check increments the nonce in the cache but fails as the node cannot be found in the registry. Subsequently, the RegisterNode transaction also fails due to an invalid nonce, as VRFProve transaction did not incremented the nonce in the consensus. Although the nonce is reset afterwards, this dance can persist indefinitely.
An alternative would be to somehow distinguish check-only failures from normal failures.
The impact of these changes on performance has not been tested.