fix: prevent double-rendering in async route handlers

This commit is contained in:
2025-12-28 17:29:10 +01:00
parent 40b848eeee
commit 64a9db7324

View File

@@ -38,11 +38,13 @@ sub startup {
$c->render_later;
$c->db->ping->then(
sub {
return if $c->stash->{rendered};
$c->render( json => { status => 'ok' } );
}
)->catch(
sub {
my $err = shift;
return if $c->stash->{rendered};
$c->app->log->error("Health check DB error: $err");
$c->render(
json => {
@@ -98,9 +100,10 @@ sub startup {
return;
}
$url_service->get_original_url($short_code)->then(
return $url_service->get_original_url($short_code)->then(
sub {
my $original_url = shift;
return if $c->stash->{rendered};
if ($original_url) {
$c->redirect_to($original_url);
}
@@ -114,6 +117,7 @@ sub startup {
)->catch(
sub {
my $err = shift;
return if $c->stash->{rendered};
$c->app->log->error("Redirect lookup error: $err");
$c->render(
json => { error => 'Internal server error' },