diff --git a/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.test.tsx b/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.test.tsx
index 4713f8c6869..1e58437c878 100644
--- a/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.test.tsx
+++ b/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.test.tsx
@@ -10,7 +10,7 @@ vi.mock("../networking", () => ({
}));
vi.mock("@/components/llm_calls/fetch_models", () => ({
- fetchAvailableModels: vi.fn().mockResolvedValue([]),
+ fetchAvailableModels: vi.fn().mockResolvedValue([{ model_group: "gpt-4o", mode: "chat" }]),
}));
vi.mock("./handle_add_auto_router_submit", () => ({
@@ -37,4 +37,20 @@ describe("AddAutoRouterTab", () => {
expect(screen.getAllByText("This tier is required")).toHaveLength(4);
expect(NotificationManager.fromBackend).toHaveBeenCalledWith("Please enter an Auto Router Name");
});
+
+ it("blocks the semantic router submit until an embedding model is selected", async () => {
+ const user = userEvent.setup();
+ renderWithProviders();
+
+ await user.click(screen.getByRole("radio", { name: /semantic router/i }));
+ await user.type(screen.getByPlaceholderText(/smart_router/i), "sem_router");
+
+ const defaultModelSelect = await screen.findByRole("combobox", { name: /default model/i });
+ await user.click(defaultModelSelect);
+ await user.click(await screen.findByTitle("gpt-4o"));
+
+ await user.click(screen.getByRole("button", { name: /add auto router/i }));
+
+ expect(NotificationManager.fromBackend).toHaveBeenCalledWith("Please select an Embedding Model");
+ });
});
diff --git a/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.tsx b/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.tsx
index a74eab0abdd..f199542b65a 100644
--- a/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.tsx
+++ b/ui/litellm-dashboard/src/components/add_model/add_auto_router_tab.tsx
@@ -157,6 +157,11 @@ const AddAutoRouterTab: React.FC = ({ form, handleOk, acc
return;
}
+ if (!form.getFieldValue("auto_router_embedding_model")) {
+ NotificationManager.fromBackend("Please select an Embedding Model");
+ return;
+ }
+
if (!routerConfig || !routerConfig.routes || routerConfig.routes.length === 0) {
NotificationManager.fromBackend("Please configure at least one route for the auto router");
return;
@@ -346,18 +351,18 @@ const AddAutoRouterTab: React.FC = ({ form, handleOk, acc
>