You may be stuck in an endless loop in which your begin sub redirects the user to another page of your Catalyst application; as soon as the "controller to be started has been identified, but before the URL mappings are triggered" ( from the Catalyst::Manual::Intro page ) begin will be called again, causing another redirect, etc. d.
Try to completely remove this code from begin ; perhaps, as Htbaa suggested, auto might be what you are looking for. The standard case of $c->detach (in controller controller ):
sub check_login :Local {
In this case, executing $c->res->redirect('http://example.com/login_successful') should work fine. Hope this helps!
source share