diff --git a/UserMicroservice/Controllers/UserController.cs b/UserMicroservice/Controllers/UserController.cs
index 889e1a3cf91b6aa95de08f32b86bca6a268ff8e9..27706aba3cf05bd01e99892fbba20f03e3f655de 100644
--- a/UserMicroservice/Controllers/UserController.cs
+++ b/UserMicroservice/Controllers/UserController.cs
@@ -47,7 +47,7 @@ namespace UserMicroservice.Controllers
         {
             string? refreshToken = Request.Cookies["RefreshToken"];
             if (string.IsNullOrEmpty(refreshToken))
-                return BadRequest("Refresh token is missing.");
+                return Unauthorized("Refresh token is missing.");
 
             if (!_authService.ValidateRefreshToken(refreshToken))
                 return Unauthorized("Invalid or expired refresh token.");
diff --git a/client/src/components/Login/Login.tsx b/client/src/components/Login/Login.tsx
index 21718298187769aafc80983bbf6187082ab2ec15..10f6e480a27283e8710eec31ec9a00792bf3f49c 100644
--- a/client/src/components/Login/Login.tsx
+++ b/client/src/components/Login/Login.tsx
@@ -23,16 +23,20 @@ export function Login() {
 
     try {
       const result = await loginUser(formValue);
-      giveAuth();
-      updateUser(result.data);
-      navigate(`/${userToDashboard(result.data)}`);
+      if (result) {
+        giveAuth();
+        updateUser(result.data);
+        navigate(`/${userToDashboard(result.data)}`);
+      } else {
+        throw new Error();
+      }
     } catch (error) {
       const errorMessage = (error as AxiosError).response?.data;
 
       if (typeof errorMessage == 'string') {
         setError(errorMessage);
       } else {
-        setError('An unexpected error has occurred');
+        setError('An unexpected error has occurred, most likely incorrect credentials');
       }
     }
   };
diff --git a/client/src/helpers/Api.ts b/client/src/helpers/Api.ts
index 5eee650ad14b8e5c1d95779c5254b7845d63f4e4..eecd4ae0f1abf8ab196e95965b42cc700e2b5b1c 100644
--- a/client/src/helpers/Api.ts
+++ b/client/src/helpers/Api.ts
@@ -6,11 +6,19 @@ const Api = axios.create({
   baseURL: 'http://localhost:5267/api/'
 });
 
+const isAlreadyAuthUrl = (error: AxiosError) => {
+  const full = error.request.responseURL as string;
+  return full.endsWith('User/authorize');
+};
+
 Api.interceptors.response.use(
   (response) => response, // Normal success logic
   (error: AxiosError) => {
-    if (error.request.status === 401) { // If 401 (Unauthorized)
-      AuthoriseUser().then(() => { // Re-auth
+    if (error.request.status === 401 && !isAlreadyAuthUrl(error)) { // If 401 (Unauthorized)
+      AuthoriseUser().then((response: any) => { // Re-auth
+        if (!response) // If no response then just return
+          return;
+
         return Api.request(error.config as AxiosRequestConfig); // Redo the request
       });
     } else {