diff --git a/Changes b/Changes
index 6c0a899..d60a2ff 100755
--- a/Changes
+++ b/Changes
@@ -1,7 +1,9 @@
-0.43 2021-06-29
+0.43 2021-07-02
         - New menu class that has an entry at the very end,
           similar to the input text prefix,
           that is always available (lerepp).
+        - Fix error message in case of server error (500)
+          response.
 
 0.42 2021-06-18
         - Added GitHub based CI for perl.
diff --git a/lib/Kalamar/Plugin/Auth.pm b/lib/Kalamar/Plugin/Auth.pm
index db9728d..df6302d 100644
--- a/lib/Kalamar/Plugin/Auth.pm
+++ b/lib/Kalamar/Plugin/Auth.pm
@@ -70,6 +70,7 @@
           tokenInvalid => 'Zugriffstoken ungültig',
           refreshFail => 'Fehlerhafter Refresh-Token',
           responseError => 'Unbekannter Autorisierungsfehler',
+          serverError => 'Unbekannter Serverfehler',
           revokeFail => 'Der Token kann nicht widerrufen werden',
           revokeSuccess => 'Der Token wurde erfolgreich widerrufen',
           paramError => 'Einige Eingaben sind fehlerhaft',
@@ -115,6 +116,7 @@
           tokenInvalid => 'Access token invalid',
           refreshFail => 'Bad refresh token',
           responseError => 'Unknown authorization error',
+          serverError => 'Unknown server error',
           revokeFail => 'Token can\'t be revoked',
           revokeSuccess => 'Token was revoked successfully',
           paramError => 'Some fields are invalid',
@@ -341,6 +343,12 @@
               );
             };
 
+            if ($tx->res->is_server_error) {
+              return Mojo::Promise->reject(
+                '600'
+              )
+            };
+
             $c->notify(error => $c->loc('Auth_responseError'));
             return Mojo::Promise->reject;
           }
@@ -567,6 +575,18 @@
               };
 
               return Mojo::Promise->resolve($tx);
+            }
+
+            # There is a server error - just report
+            elsif ($tx->res->is_server_error) {
+              my $err = $tx->res->error;
+              if ($err) {
+                return Mojo::Promise->reject($err->{code} . ': ' . $err->{message});
+              }
+              else {
+                $c->notify(error => $c->loc('Auth_serverError'));
+                return Mojo::Promise->reject;
+              };
             };
 
             $c->notify(error => $c->loc('Auth_responseError'));
diff --git a/t/plugin/auth-oauth.t b/t/plugin/auth-oauth.t
index 7db935f..33ffafa 100644
--- a/t/plugin/auth-oauth.t
+++ b/t/plugin/auth-oauth.t
@@ -236,6 +236,11 @@
   ->element_exists_not('p.hint')
   ;
 
+# Query with error
+$t->get_ok('/?q=error')
+  ->status_is(400)
+  ->text_is('#notifications .notify-error','500: Internal Server Error')
+;
 
 # Logout
 $t->get_ok('/user/logout')
diff --git a/t/query.t b/t/query.t
index d3f0cd3..50d81b1 100644
--- a/t/query.t
+++ b/t/query.t
@@ -225,6 +225,12 @@
   ->text_is('#total-results', '> 4,274,841');
 ;
 
+# Query with error
+$t->get_ok('/?q=error')
+  ->status_is(400)
+  ->text_is('#notifications .notify-error','500: Internal Server Error')
+;
+
 # Do not cache
 $t->get_ok('/?q=timeout')
   ->status_is(200)
diff --git a/t/server/mock.pl b/t/server/mock.pl
index bd6debe..5389156 100644
--- a/t/server/mock.pl
+++ b/t/server/mock.pl
@@ -150,6 +150,13 @@
     return $c->render(%{$c->load_response('query_no_query')});
   };
 
+  if ($v->param('q') eq 'error') {
+    return $c->render(
+      status => 500,
+      inline => '<html><head>ERROR</head></html>'
+    );
+  };
+
   my @slug_base = ($v->param('q'));
   push @slug_base, 'o' . $v->param('offset') if defined $v->param('offset');
   push @slug_base, 'c' . $v->param('count') if defined $v->param('count');
