According to the manual linked above your code is by default fully described as
<transacts><no_rollback> #only allowed in UEFN API
So if there is an error there is no fallback on error so you will need
<decides><transacts>
Trying control-f to search with transacts
they all say
<decides><transacts>
There may be an error in your code which will now show up
see
IsPuzzleSolved()<decides><transacts> : void =
CurrentState = PuzzleSolution # succeeds if CurrentState is equal to PuzzleSolution, and fails if not
Main() : void =
if (IsPuzzleSolved[]):
ItemSpawner.Enable()
In this code The function PuzzleSolution is now protected from runtime errors and is detected in
if (IsPuzzleSolved[]):
This means you can print if an error occurs or carry on.
in the documentation above Control + F and search for the word transact
There are over 20 examples of the use of
<decides><transacts>
for many operations in Verse