{"record":{"id":"3fcffe1b8aada1f5","repo":"langflow-ai/langflow","slug":"no-model-provider-is-configured-please-configure","errorCode":null,"errorMessage":"No model provider is configured. Please configure at least one model provider in Settings.","messagePattern":"No model provider is configured\\. Please configure at least one model provider in Settings\\.","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"src/backend/base/langflow/agentic/api/router.py","lineNumber":70,"sourceCode":"    global_vars: dict[str, str]\n    max_retries: int\n\n\nasync def _resolve_assistant_context(\n    request: AssistantRequest,\n    user_id: UUID,\n    session: AsyncSession,\n) -> _AssistantContext:\n    \"\"\"Resolve provider, model, API key, and build execution context.\n\n    Raises:\n        HTTPException: If provider is not configured or API key is missing.\n    \"\"\"\n    provider_variable_map = get_model_provider_variable_mapping()\n    enabled_providers, _ = await get_enabled_providers_for_user(user_id, session)\n\n    if not enabled_providers:\n        raise HTTPException(\n            status_code=400,\n            detail=\"No model provider is configured. Please configure at least one model provider in Settings.\",\n        )\n\n    provider = request.provider\n    if not provider:\n        for preferred in PREFERRED_PROVIDERS:\n            if preferred in enabled_providers:\n                provider = preferred\n                break\n        if not provider:\n            provider = enabled_providers[0]\n\n    if provider not in enabled_providers:\n        raise HTTPException(\n            status_code=400,\n            detail=f\"Provider '{provider}' is not configured. Available providers: {enabled_providers}\",\n        )","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/langflow-ai/langflow/blob/976ec789d2886a86de109c044d089d68e96c9a35/src/backend/base/langflow/agentic/api/router.py#L52-L88","documentation":"The agentic assistant router resolves which model provider to use before executing a request. It builds the provider-variable mapping and queries enabled providers for the user; if the list is empty it raises HTTP 400 telling the user to configure at least one provider in Settings. Providers are enabled per-user via configured variables, so a fresh install or a user without API keys hits this immediately.","triggerScenarios":"POST to any agentic assistant endpoint (chat/generate) for a user with no enabled providers — e.g. no OPENAI_API_KEY or ANTHROPIC_API_KEY variable configured for that user.","commonSituations":"First use of the Assistant after install; per-user global variables not yet set (keys set for a different user or only as server env without variable records); multi-user deployments where each user must configure keys.","solutions":["Open Settings and configure at least one model provider API key for the requesting user (creates the enabling variable).","As superuser, pre-seed provider variables for users via the Variables API/UI.","Verify with GET /agentic/check-config which providers are visible/enabled before sending assistant requests."],"exampleFix":"# before\nPOST /api/v1/agentic/chat  # 400 No model provider is configured\n# after: configure a key for the user, then\nGET /api/v1/agentic/check-config  # shows provider enabled\nPOST /api/v1/agentic/chat","handlingStrategy":"validation","validationCode":"import requests\nprobe = requests.get(\"http://host/api/v1/agentic/check-config\", headers=headers)\nprobe.raise_for_status()\nproviders = probe.json().get(\"providers\") or probe.json().get(\"enabled_providers\")\nif not providers:\n    show_settings_onboarding()  # don't fire the request that will 400","typeGuard":null,"tryCatchPattern":"if resp.status_code == 400 and \"No model provider\" in resp.text:\n    redirect_user_to_settings_page()","preventionTips":["Probe /agentic/check-config before enabling assistant UI.","Configure at least one provider variable per user during onboarding.","In multi-user deployments, pre-seed provider variables via the Variables API."],"tags":["agentic","http-400","model-provider","api-key","configuration"],"backgroundTag":null,"analyzedSha":"976ec789d2886a86de109c044d089d68e96c9a35","analyzedAt":"2026-08-14T18:23:12.227Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}