send_redirect and send_error automatically end running luan for a page by internally throwing an exception that is caught by HttpServicer. This seems too magical to me and I want to get rid of it. Okay? Note that you are currently relying on this in pay-nabble cancel.luan . I think an explicit "return" is clearer.