diff --git a/backend/open_webui/retrieval/web/duckduckgo.py b/backend/open_webui/retrieval/web/duckduckgo.py
index afd82eaf04..c9cefc25b1 100644
--- a/backend/open_webui/retrieval/web/duckduckgo.py
+++ b/backend/open_webui/retrieval/web/duckduckgo.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import logging
import urllib.request
-from ddgs import DDGS
+from open_webui.env import USE_SLIM
from open_webui.retrieval.web.main import SearchResult, get_filtered_results
log = logging.getLogger(__name__)
@@ -26,6 +26,13 @@ def search_duckduckgo(
Returns:
list[SearchResult]: A list of search results
"""
+ if USE_SLIM:
+ raise ValueError(
+ 'DDGS is unavailable in slim. Configure another web search provider in Admin Settings > Web Search.'
+ )
+
+ from ddgs import DDGS
+
# The ddgs library (primp-based) does not auto-detect proxy env vars.
# Resolve via stdlib getproxies() — same pattern as the other loaders.
env_proxies = urllib.request.getproxies()
diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py
index e57ca656e1..55813341a2 100644
--- a/backend/open_webui/routers/retrieval.py
+++ b/backend/open_webui/routers/retrieval.py
@@ -951,6 +951,15 @@ async def update_rag_config(request: Request, form_data: ConfigForm, user=Depend
# RAG settings
config = await get_retrieval_config()
if USE_SLIM:
+ if (
+ form_data.web
+ and form_data.web.WEB_SEARCH_ENGINE == 'duckduckgo'
+ and config.WEB_SEARCH_ENGINE != 'duckduckgo'
+ ):
+ raise HTTPException(
+ 400,
+ 'DDGS is unavailable in slim. Configure another web search provider in Admin Settings > Web Search.',
+ )
if (
form_data.web
and form_data.web.WEB_LOADER_ENGINE == 'playwright'
diff --git a/backend/requirements-slim.txt b/backend/requirements-slim.txt
index 4006798175..92e04118e5 100644
--- a/backend/requirements-slim.txt
+++ b/backend/requirements-slim.txt
@@ -74,8 +74,6 @@ rank-bm25==0.2.2
black==26.5.1
youtube-transcript-api==1.2.4
-ddgs==9.14.4
-
azure-ai-documentintelligence==1.0.2
azure-identity==1.25.3
azure-search-documents==12.0.0
diff --git a/src/lib/components/admin/Settings/WebSearch.svelte b/src/lib/components/admin/Settings/WebSearch.svelte
index 2a20f192f3..e77814f3a4 100644
--- a/src/lib/components/admin/Settings/WebSearch.svelte
+++ b/src/lib/components/admin/Settings/WebSearch.svelte
@@ -210,7 +210,7 @@
{#each webSearchEngines as engine}
{#if engine === 'duckduckgo' || engine === 'ddgs'}
-
+
{:else if engine === 'serphouse'}
{:else}