}
# We authenticate every request, needed for proper session management
- my $status = $r->call_authenticate;
+ my $status;
+ eval { $status = $r->call_authenticate };
+ if ( my $error = $@ ) {
+ $status = $r->call_exception($error);
+ if ( $status != OK ) {
+ warn "caught model error: $error";
+ return $r->debug ? $r->view_object->error( $r, $error ) : ERROR;
+ }
+ }
if ( $r->debug and $status != OK and $status != DECLINED ) {
$r->view_object->error( $r,
"Got unexpected status $status from calling authentication" );