State Machine processing 2 transitions consecutively

Hi, everyone.

I’m building the simple state machine described in the documentation here: State Machine

You’re asked to guess a number between 1 and 100. You input something, and you’re told if your guess is higher or lower until you guess the integer.

I wanted to add some more functionality in case some makes a guess outside of the accepted range (ie, <1 or >100) or enters something that is not the Int32 type. So, I added a Try-Catch (see attached project).

My catches work; a message box appears after someone enters an incorrect guess. It will say “Your guess is not between 1 and 100.” or tell us the System.Exception message.

The problem is, right after it does this, I want it to ask me to guess again. Instead, it tells me that my guess is “too low” or “too high” and then asks me to guess again. For some reason, it is catching the exception and evaluating the previous intGuess, then asking us to guess again. I don’t want it to evaluate intGuess at this point.

Can anyone take a look at this file and figure out why it’s doing this?
Main.xaml (26.6 KB)

Update 1: Here’s a picture of the State Machine. I added the “Reset State” as a way to try to get this to stop evaluating intGuess after an Exception, but it did not fix the issue.

Update 2: I reworked it a bit, and now it’s doing something similar, but still unwanted. The message box with the exception message is now appearing twice at the points I have indicated with an arrow. Here is the new workflow, too.
Main.xaml (33.8 KB)
message box appears twice


It’s because you put MessageBox activities in Catch state and BusinessRule Transition.

It won’t be shown, if you remove either activity.



So obvious in retrospect. Surprised I did not catch that. Thank you.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.