diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.spec.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.spec.ts
new file mode 100644
--- /dev/null
+++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.spec.ts
@@ -0,0 +1,14 @@
+import { describe, expect, it, vi } from "vitest";
+import { UsersApi } from "./UsersApi";
+
+describe("UsersApi", () => {
+  it("returns the connection error when the session request fails", async () => {
+    const api = new UsersApi();
+    vi.spyOn(api, "fetch").mockRejectedValueOnce(new Error("network unavailable"));
+
+    await expect(api.GetSession()).resolves.toMatchObject({
+      success: false,
+      errorMessage: "network unavailable",
+    });
+  });
+});
diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.ts
--- a/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.ts
+++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/UsersApi.ts
@@ -1,5 +1,5 @@
-import { ApiManager, ApiResponse } from "./ApiManager";
 import { UserInfo } from "~/models";
+import { ApiManager, ApiResponse } from "./ApiManager";
 
 interface SignupRequest {
   username: string;
@@ -33,7 +33,7 @@ export class UsersApi extends ApiManager {
       .catch((err) => {
         return {
           success: false,
-          errorMessage: err.mesasge,
+          errorMessage: err instanceof Error ? err.message : String(err),
         };
       });
   }
