So what's happening? The command line interface currently calls get_available_transitions and returns a list of all possible transitions of the state machine. However, all these transitions are actually the unique id's of each individual transition which describes the complete graph of the state machine. That's why you see transitions such as configure_error. This is for example the unique (internal) id of the transition from the transition state configurING to error_processing, which you are not able to trigger from the outside. It just happens to have configure, cleanup, activate and deactivate (as the internal ID and the transitions you can trigger) as they are uniquely defined for one action to take. In the case of shutdown, there are - as you've figured out - multiple occasions where you could call it. That's why you have unique IDs for shutdown from each of these states: unconfigured_shutdown, inactive_shutdown, active_shutdown.