From 64a9db7324ee9b3003080da469853b329e6a0d8c Mon Sep 17 00:00:00 2001 From: Kharec Date: Sun, 28 Dec 2025 17:29:10 +0100 Subject: [PATCH] fix: prevent double-rendering in async route handlers --- lib/Urupam/App.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/Urupam/App.pm b/lib/Urupam/App.pm index 1569f5c..664f484 100644 --- a/lib/Urupam/App.pm +++ b/lib/Urupam/App.pm @@ -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' },