diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 4046259b8..65acc3e19 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -6,8 +6,13 @@ import footer from "./config/footer.config";
 import { env } from "process";
 import { Config } from "@docusaurus/types";
 import { Options } from "@docusaurus/plugin-content-docs";
-import { getFileCommitHash } from "@docusaurus/utils/src/gitUtils";
-import { AUTHOR_FALLBACK, AuthorData, commitCache, cacheAuthorData } from "./src/util/authorUtils";
+import {
+  AUTHOR_FALLBACK,
+  AuthorData,
+  commitCache,
+  cacheAuthorData,
+  getFileCommitHashSafe,
+} from "./src/util/authorUtils";
 
 const preview = env.VERCEL_ENV === "preview";
 cacheAuthorData(preview || process.env.NODE_ENV === "development");
@@ -89,12 +94,14 @@ const config: Config = {
         ...AUTHOR_FALLBACK,
       };
       if (process.env.NODE_ENV !== "development") {
-        const { commit } = await getFileCommitHash(params.filePath);
-        const username = commitCache.get(commit);
-        author = {
-          commit,
-          username: username ?? AUTHOR_FALLBACK.username,
-        };
+        const data = await getFileCommitHashSafe(params.filePath);
+        if (data) {
+          const username = commitCache.get(data.commit);
+          author = {
+            commit: data.commit,
+            username: username ?? AUTHOR_FALLBACK.username,
+          };
+        }
       }
 
       return {
diff --git a/src/util/authorUtils.ts b/src/util/authorUtils.ts
index e2ccdefe3..3429e6322 100644
--- a/src/util/authorUtils.ts
+++ b/src/util/authorUtils.ts
@@ -47,6 +47,18 @@ async function cacheUsernameFromCommit(commit: string) {
   }
 }
 
+export const getFileCommitHashSafe = async (file: string): Promise<{ commit: string } | null> => {
+  try {
+    return await getFileCommitHash(file);
+  } catch (e) {
+    if (e instanceof FileNotTrackedError) {
+      return null;
+    }
+
+    throw e; // different error, rethrow
+  }
+};
+
 export async function cacheAuthorData(isPreview: boolean) {
   // Only Render in Production and not cache in every invocation of importing docusaurus.config.ts
   if (isPreview || !new Error().stack.includes("async loadSite")) {
@@ -59,18 +71,8 @@ export async function cacheAuthorData(isPreview: boolean) {
   }
 
   const pagesFiles = await Globby("docs/**/*.md*");
-  const commits = await Promise.all(
-    pagesFiles.map((f) => {
-      return getFileCommitHash(f).catch((e) => {
-        if (e instanceof FileNotTrackedError) {
-          return null;
-        }
-
-        throw e; // different error, rethrow
-      });
-    })
-  );
-
+  const commits = await Promise.all(pagesFiles.map(getFileCommitHashSafe));
   const commitsSet = new Set(commits.filter(Boolean).map((value) => value.commit));
+
   await Promise.all(Array.from(commitsSet).map(cacheUsernameFromCommit));
 }