diff --git a/lib/igdb.ts b/lib/igdb.ts
index b924e9b84847056d12209b540361a517df1f60eb..31ba2b3281a65ea70ded1def991d434bd146aa80 100644
--- a/lib/igdb.ts
+++ b/lib/igdb.ts
@@ -28,13 +28,13 @@ async function getToken(): Promise<IAuth> {
 }
 
 // fetches the top 200 games with a rating of 96 or higher
-export async function getGames(page = 1): Promise<IGame[] | unknown> {
-    const auth = await getToken()
-    const url = new URL(`${IGDB_BASE_URL}/games`)
+export async function getGames(page = 1): Promise<IGame[]> {
+    try {
+        const auth = await getToken();
+        const url = new URL(`${IGDB_BASE_URL}/games`);
 
-    let offset = calculateOffset(page, limit)
+        let offset = calculateOffset(page, limit);
 
-    try {
         const response = await fetch(url, {
             method: 'POST',
             headers: {
@@ -42,18 +42,24 @@ export async function getGames(page = 1): Promise<IGame[] | unknown> {
                 'Authorization': `Bearer ${auth.access_token}`
             },
             body: `fields name, cover.*; limit ${limit}; offset ${offset};
-            sort total_rating desc; where total_rating_count > 2
-            & cover != null & total_rating != null & rating != null;`
-        })
-        const games = await response.json() as IGame[]
+                sort total_rating desc; where total_rating_count > 2
+                & cover != null & total_rating != null & rating != null;`
+        });
+
+        if (!response.ok) {
+            throw new Error(`Error fetching games: ${response.statusText}`);
+        }
+
+        const games = await response.json() as IGame[];
 
         games.forEach(game => {
-            game.cover.url = getImageURL(game.cover.image_id, 'cover_big')
-        })
+            game.cover.url = getImageURL(game.cover.image_id, 'cover_big');
+        });
 
-        return games
+        return games;
     } catch (error) {
-        console.log(error)
+        console.error('Error in getGames:', error);
+        throw error;
     }
 }