[GH-ISSUE #17426] issue: Unprocessable Entity in Brave search #18280

Closed
opened 2026-04-20 00:28:47 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @scionaltera on GitHub (Sep 14, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17426

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Other

Open WebUI Version

v0.6.28

Ollama Version (if applicable)

0.11.10

Operating System

Sequoia 15.6.1

Browser (if applicable)

Brave 1.82.161 arm64

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

Using qwen3:30b with Brave Web Search enabled, the LLM's "thinking" output is discarded and only the text of the search query is fed to Brave's API.

Actual Behavior

Using qwen3:30b with Brave Web Search enabled, occasionally the search query will contain the LLM's "thinking" output as part of the query:

requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.search.brave.com/res/v1/web/search?q=%7B%0A+++%22queries%22%3A+%5B%0A++++++++%22today%27s+top+headlines+2025-09-14%22%2C%0A++++++++%22current+news+headlines+September+14+2025%22%0A+++%5D%0A+%7D%0A%0A+However%2C+note%3A+the+guidelines+say+%22broad+and+relevant%22.+We+are+not+specifying+a+news+source%2C+so+it%27s+broad.%0A%0A+Let%27s+check%3A+%0A+++-+%22today%27s+top+headlines+2025-09-14%22+is+clear.%0A+++-+%22current+news+headlines+September+14+2025%22+is+also+clear.%0A%0A+We%27ll+go+with+these+two.%0A%0A+But+note%3A+the+current+date+in+the+system+is+2025-09-14%2C+so+we+are+safe.%0A%0A+However%2C+the+chat+history+only+has+one+message%2C+so+we+have+no+context+about+previous+searches.+We+are+to+generate+the+queries+for+the+current+request.%0A%0A+Therefore%2C+we+output+the+JSON+with+these+two+queries.%0A%0A+But+note%3A+the+guidelines+say+%221-3%22%2C+so+two+is+acceptable.%0A%0A+Let%27s+write+the+JSON.%0A%0A+Important%3A+We+must+not+output+anything+else.%0A%0A+So+the+response+is%3A%0A%0A%7B%0A++%22queries%22%3A+%5B%0A++++%22today%27s+top+headlines+2025-09-14%22%2C%0A++++%22current+news+headlines+September+14+2025%22%0A++%5D%0A%7D%0A%0A+However%2C+note%3A+the+date+in+the+second+query+is+written+as+%22September+14+2025%22%2C+which+is+standard.+We+could+also+use+%222025-09-14%22+for+consistency%2C+but+it%27s+common+to+see+the+month+name.%0A%0A+But+to+be+consistent+in+the+format%2C+we+could+use+the+same+date+format+in+both%3F+However%2C+the+guidelines+don%27t+require+that.%0A%0A+Let%27s+stick+to+two+different+common+formats.%0A%0A+Alternatively%2C+we+can+use%3A%0A%0A+++%22today%27s+headlines+2025-09-14%22%0A+++%22latest+news+headlines+September+14+2025%22%0A%0A+But+I+think+the+two+I+have+are+fine.%0A%0A+Final+decision%3A+two+queries.%0A%0A+However%2C+note%3A+the+current+date+in+the+system+is+2025-09-14%2C+so+we+are+using+that+exact+date.%0A%0A+Let%27s+output+the+JSON.%0A%3C%2Fthink%3E%0A%0A%7B%0A++%22queries%22%3A+%5B%0A++++%22today%27s+top+headlines+2025-09-14%22%2C%0A++++%22current+news+headlines+September+14+2025%22%0A++%5D%0A%7D&count=3

This results in the API responding with 422, Unprocessable Entity.

It doesn't do this every time, but if you try a few times you should see it. You can clearly see in the URL that is generated that it contains the thinking output from qwen that has been mistakenly included.

Steps to Reproduce

  1. Install ollama on MacBook Pro with brew install ollama.
  2. Start ollama with brew services start ollama.
  3. Use below docker-compose.yml.
  4. Run open-webui with docker compose up.
  5. Visit http://localhost:3000
  6. Log into open-webui.
  7. Configure Web Search to use Brave with Base API plan (free isn't working lately due to 429s).
  8. Start a chat with qwen3:30b, with Web Search enabled.
  9. Occasionally the 422 will happen. Usually takes only a few tries.
services:
    ollama-webui:    
        image: ghcr.io/open-webui/open-webui:main
        container_name: ollama-webui
        volumes:
          - ./ollama-webui:/app/backend/data
        ports:
          - 3000:8080
        environment:
          - 'OLLAMA_API_BASE_URL=http://localhost:11434/api'
          - 'WEBUI_BASE_URL=http://localhost:8080'
        extra_hosts:
          - host.docker.internal:host-gateway
        restart: unless-stopped

Logs & Screenshots

Image Image

Additional Information

I also observed this issue with ollama and open-webui both running in Docker on a Win11 machine, so I don't think it is OS dependent. I don't use any other models that have the "thinking" functionality so I don't know if it is specific to qwen or if any thinking model will do it. It seems like an issue with parsing the <think> tags in the output, perhaps if the tokens include unexpected characters.

Originally created by @scionaltera on GitHub (Sep 14, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/17426 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Other ### Open WebUI Version v0.6.28 ### Ollama Version (if applicable) 0.11.10 ### Operating System Sequoia 15.6.1 ### Browser (if applicable) Brave 1.82.161 arm64 ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior Using qwen3:30b with Brave Web Search enabled, the LLM's "thinking" output is discarded and only the text of the search query is fed to Brave's API. ### Actual Behavior Using qwen3:30b with Brave Web Search enabled, occasionally the search query will contain the LLM's "thinking" output as part of the query: ``` requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.search.brave.com/res/v1/web/search?q=%7B%0A+++%22queries%22%3A+%5B%0A++++++++%22today%27s+top+headlines+2025-09-14%22%2C%0A++++++++%22current+news+headlines+September+14+2025%22%0A+++%5D%0A+%7D%0A%0A+However%2C+note%3A+the+guidelines+say+%22broad+and+relevant%22.+We+are+not+specifying+a+news+source%2C+so+it%27s+broad.%0A%0A+Let%27s+check%3A+%0A+++-+%22today%27s+top+headlines+2025-09-14%22+is+clear.%0A+++-+%22current+news+headlines+September+14+2025%22+is+also+clear.%0A%0A+We%27ll+go+with+these+two.%0A%0A+But+note%3A+the+current+date+in+the+system+is+2025-09-14%2C+so+we+are+safe.%0A%0A+However%2C+the+chat+history+only+has+one+message%2C+so+we+have+no+context+about+previous+searches.+We+are+to+generate+the+queries+for+the+current+request.%0A%0A+Therefore%2C+we+output+the+JSON+with+these+two+queries.%0A%0A+But+note%3A+the+guidelines+say+%221-3%22%2C+so+two+is+acceptable.%0A%0A+Let%27s+write+the+JSON.%0A%0A+Important%3A+We+must+not+output+anything+else.%0A%0A+So+the+response+is%3A%0A%0A%7B%0A++%22queries%22%3A+%5B%0A++++%22today%27s+top+headlines+2025-09-14%22%2C%0A++++%22current+news+headlines+September+14+2025%22%0A++%5D%0A%7D%0A%0A+However%2C+note%3A+the+date+in+the+second+query+is+written+as+%22September+14+2025%22%2C+which+is+standard.+We+could+also+use+%222025-09-14%22+for+consistency%2C+but+it%27s+common+to+see+the+month+name.%0A%0A+But+to+be+consistent+in+the+format%2C+we+could+use+the+same+date+format+in+both%3F+However%2C+the+guidelines+don%27t+require+that.%0A%0A+Let%27s+stick+to+two+different+common+formats.%0A%0A+Alternatively%2C+we+can+use%3A%0A%0A+++%22today%27s+headlines+2025-09-14%22%0A+++%22latest+news+headlines+September+14+2025%22%0A%0A+But+I+think+the+two+I+have+are+fine.%0A%0A+Final+decision%3A+two+queries.%0A%0A+However%2C+note%3A+the+current+date+in+the+system+is+2025-09-14%2C+so+we+are+using+that+exact+date.%0A%0A+Let%27s+output+the+JSON.%0A%3C%2Fthink%3E%0A%0A%7B%0A++%22queries%22%3A+%5B%0A++++%22today%27s+top+headlines+2025-09-14%22%2C%0A++++%22current+news+headlines+September+14+2025%22%0A++%5D%0A%7D&count=3 ``` This results in the API responding with 422, Unprocessable Entity. It doesn't do this every time, but if you try a few times you should see it. You can clearly see in the URL that is generated that it contains the thinking output from qwen that has been mistakenly included. ### Steps to Reproduce 1. Install ollama on MacBook Pro with `brew install ollama`. 2. Start ollama with `brew services start ollama`. 3. Use below `docker-compose.yml`. 4. Run open-webui with `docker compose up`. 5. Visit http://localhost:3000 6. Log into open-webui. 7. Configure Web Search to use Brave with Base API plan (free isn't working lately due to 429s). 8. Start a chat with qwen3:30b, with Web Search enabled. 9. Occasionally the 422 will happen. Usually takes only a few tries. ```yaml services: ollama-webui: image: ghcr.io/open-webui/open-webui:main container_name: ollama-webui volumes: - ./ollama-webui:/app/backend/data ports: - 3000:8080 environment: - 'OLLAMA_API_BASE_URL=http://localhost:11434/api' - 'WEBUI_BASE_URL=http://localhost:8080' extra_hosts: - host.docker.internal:host-gateway restart: unless-stopped ``` ### Logs & Screenshots <img width="1411" height="595" alt="Image" src="https://github.com/user-attachments/assets/a040daea-f032-43ff-9f81-4c7939006069" /> <img width="1917" height="492" alt="Image" src="https://github.com/user-attachments/assets/13ec3558-3d37-4dcf-9d02-5d6ccdb471f1" /> ### Additional Information I also observed this issue with ollama and open-webui both running in Docker on a Win11 machine, so I don't think it is OS dependent. I don't use any other models that have the "thinking" functionality so I don't know if it is specific to qwen or if any thinking model will do it. It seems like an issue with parsing the `<think>` tags in the output, perhaps if the tokens include unexpected characters.
GiteaMirror added the bug label 2026-04-20 00:28:47 -05:00
Author
Owner

@tjbck commented on GitHub (Sep 15, 2025):

Unable to reproduce.

<!-- gh-comment-id:3293104622 --> @tjbck commented on GitHub (Sep 15, 2025): Unable to reproduce.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#18280