From 464846d4a3e2ea0ee36810cb1ed1cca47ba4558e Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Tue, 30 Dec 2025 14:37:44 +0100 Subject: [PATCH] fix: retry Brave Search on HTTP 429 rate limit with 1s delay (#20255) * Update brave.py * Update brave.py --- backend/open_webui/retrieval/web/brave.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/open_webui/retrieval/web/brave.py b/backend/open_webui/retrieval/web/brave.py index e047602b36..49c8a88e81 100644 --- a/backend/open_webui/retrieval/web/brave.py +++ b/backend/open_webui/retrieval/web/brave.py @@ -1,4 +1,5 @@ import logging +import time from typing import Optional import requests @@ -25,6 +26,14 @@ def search_brave( params = {"q": query, "count": count} response = requests.get(url, headers=headers, params=params) + + # Handle 429 rate limiting - Brave free tier allows 1 request/second + # If rate limited, wait 1 second and retry once before failing + if response.status_code == 429: + log.info("Brave Search API rate limited (429), retrying after 1 second...") + time.sleep(1) + response = requests.get(url, headers=headers, params=params) + response.raise_for_status() json_response = response.json()