diff --git a/app/utils/model.ts b/app/utils/model.ts
index c4a4833ed..b2a42ef02 100644
--- a/app/utils/model.ts
+++ b/app/utils/model.ts
@@ -10,24 +10,23 @@ export function collectModelTable(
       available: boolean;
       name: string;
       displayName: string;
-      provider: LLMModel["provider"];
+      provider?: LLMModel["provider"]; // Marked as optional
     }
   > = {};
 
   // default models
-  models.forEach(
-    (m) =>
-      (modelTable[m.name] = {
-        ...m,
-        displayName: m.name,
-      }),
-  );
+  models.forEach((m) => {
+    modelTable[m.name] = {
+      ...m,
+      displayName: m.name, // 'provider' is copied over if it exists
+    };
+  });
 
   // server custom models
   customModels
     .split(",")
     .filter((v) => !!v && v.length > 0)
-    .map((m) => {
+    .forEach((m) => {
       const available = !m.startsWith("-");
       const nameConfig =
         m.startsWith("+") || m.startsWith("-") ? m.slice(1) : m;
@@ -35,15 +34,15 @@ export function collectModelTable(
 
       // enable or disable all models
       if (name === "all") {
-        Object.values(modelTable).forEach((m) => (m.available = available));
+        Object.values(modelTable).forEach((model) => (model.available = available));
+      } else {
+        modelTable[name] = {
+          name,
+          displayName: displayName || name,
+          available,
+          provider: modelTable[name]?.provider, // Use optional chaining
+        };
       }
-
-      modelTable[name] = {
-        name,
-        displayName: displayName || name,
-        available,
-        provider: modelTable[name].provider,
-      };
     });
   return modelTable;
 }