Mintplex-Labs/anything-llm · warning · Error
Select a router
Error message
Select a router
What it means
Workspace chat LLM selector save guard. When the selected provider is 'anythingllm-router', saving requires a non-empty selectedRouterId; otherwise the localized 'model-router.chat.select-router-error' message (default text 'Select a router') is thrown before any API call is made.
Source
Thrown at frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/LLMSelector/index.jsx:91
}
function handleProviderSelection(provider) {
setSelectedLLMProvider(provider);
setAvailableProviders(WORKSPACE_LLM_PROVIDERS);
autoScrollToSelectedLLMProvider(provider, 50);
document.getElementById("llm-search-input").value = "";
setHasChanges(true);
setMissingCredentials(hasMissingCredentials(settings, provider));
}
async function handleSave() {
setSaving(true);
try {
setHasChanges(false);
const isRouter = selectedLLMProvider === "anythingllm-router";
if (isRouter && !selectedRouterId)
throw new Error(t("model-router.chat.select-router-error"));
const updateData = isRouter
? { chatProvider: selectedLLMProvider, router_id: selectedRouterId }
: {
chatProvider: selectedLLMProvider,
chatModel: validatedModelSelection(selectedLLMModel),
};
if (!isRouter && !updateData.chatModel)
throw new Error(t("model-router.chat.invalid-model"));
const { message } = await Workspace.update(slug, updateData);
if (!!message) throw new Error(message);
window.dispatchEvent(new Event(SAVE_LLM_SELECTOR_EVENT));
} catch (error) {
console.error(error);
showToast(error.message, "error", { clear: true });View on GitHub (pinned to 3aec848f28)
Solutions
- Pick a router in the router dropdown before saving
- If no routers are listed, create one first in the model-router admin pages
- Reload the page when the router list failed to load, then select and save
Defensive patterns
Strategy: validation
Validate before calling
const isRouter = selectedLLMProvider === "anythingllm-router";
const canSave = isRouter ? !!selectedRouterId : !!validatedModelSelection(selectedLLMModel);
// <button disabled={!canSave} onClick={handleSave}>Save</button> Try / catch
try { await handleSave(); }
catch (e) { if (e.message === t("model-router.chat.select-router-error")) highlightRouterDropdown(); else throw e; } Prevention
- Disable Save until the required router (or model) selection exists
- Show an inline hint on the router dropdown when the list is empty or still loading
- Validate the pair (provider + routerId/model) in one place before calling Workspace.update
When it happens
Trigger: Provider dropdown set to anythingllm-router while the router sub-selection is empty — because no routers exist, the router list is still loading, or the user simply never picked one — and Save is clicked.
Common situations: No routers created yet in the model-router admin section; router fetch failed so the dropdown is empty; user switched provider to the router option and immediately saved.
Related errors
- Invalid model selection
- ${message}
- data.message || "Error creating slash command preset."
- data.message || "Could not update slash command preset."
- click requires <x> <y> coordinates
AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18).
Data as JSON: /api/errors/a4620130649a3fe1.
Report an issue: GitHub.