run_state_machine more robust to errors

errors shouldn't break the state machine, but we should discuss error handling