If any action fails, the component returns it with sm:failed='1' on the session element. We don't use the route type at all anymore, that is reserved for _routing_ errors. This has the nice side effect of allowing us to distinguish between "session ended" and "sm crashed". No bounce must result from a failed action. The namespace URL is "http://jabberd.jabberstudio.org/ns/session/1.0" c2s->sm: start session sm->c2s: session started c2s->sm: end session sm->c2s: session ended c2s->sm: send packet ... sm->c2s: send packet ... c2s->sm: create user sm->c2s: user created c2s->sm: delete user sm->c2s: user deleteed