[GH-ISSUE #14034] issue: Notes long audio upload / transcription timeout with Cloudflare proxy #55781

Closed
opened 2026-05-05 18:01:40 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @JobDoesburg on GitHub (May 19, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/14034

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.6.10

Ollama Version (if applicable)

v0.7.0

Operating System

Ubuntu 24.04

Browser (if applicable)

Safari 18.5

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 listed steps to reproduce the bug in detail.

Expected Behavior

After uploading a long .m4a or .mp3 audio file to a note, it is properly attached to my note

Actual Behavior

When upload is complete and transcription is processing, but before transcription finishes, a timeout occurs and the file disappears from the note.

Steps to Reproduce

  1. Create a new note
  2. Upload a long audio file (in my case almost 1 hour, which takes some minutes to transcribe)
  3. Wait
  4. A timeout occurs
  5. Even after transcription on the server finishes, the file disappears

Logs & Screenshots

Docker logs:

ollama-webui  | 2025-05-19 08:51:15.575 | INFO     | uvicorn.protocols.http.httptools_impl:send:476 - 131.174.142.202:0 - "POST /api/v1/notes/eb24f9f8-fea2-407f-b4a1-051e9a41f04f/update HTTP/1.1" 200 - {}
ollama-webui  | 2025-05-19 08:51:22.020 | INFO     | open_webui.routers.files:upload_file:91 - file.content_type: audio/x-m4a - {}
ollama-webui  | 2025-05-19 08:51:22.044 | INFO     | open_webui.routers.audio:transcribe:781 - transcribe: /app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording.m4a - {}
ollama-webui  | 2025-05-19 08:51:38.342 | INFO     | open_webui.routers.audio:convert_audio_to_mp3:115 - Converted /app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording.m4a to /app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording.mp3 - {}
ollama-webui  | Chunk paths: ['/app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording_compressed.mp3']
ollama-webui  | 2025-05-19 08:51:47.814 | INFO     | faster_whisper.transcribe:transcribe:839 - Processing audio with duration 53:13.728 - {}
ollama-webui  | 2025-05-19 08:51:51.196 | INFO     | faster_whisper.transcribe:transcribe:906 - Detected language 'nl' with probability 0.93 - {}
ollama-webui  | 2025-05-19 08:51:51.203 | INFO     | open_webui.routers.audio:transcription_handler:548 - Detected language 'nl' with probability 0.925585 - {}
ollama-webui  | 2025-05-19 08:54:55.271 | INFO     | open_webui.routers.retrieval:save_docs_to_vector_db:955 - save_docs_to_vector_db: document recording.m4a file-2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1 - {}
ollama-webui  | 2025-05-19 08:54:55.283 | INFO     | open_webui.routers.retrieval:save_docs_to_vector_db:1038 - adding to collection file-2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1 - {}
Batches: 100%|██████████| 1/1 [00:00<00:00, 10.91it/s]

Notice that the last lines (save_docs_to_vector_db and even later the Batches: 100% ) only appear after a long time. In the meantime, the browser already received a 524: A timeout occurred and the file disappears.

Browser logs:

[Error] Failed to load resource: the server responded with a status of 524 () (files, line 0)
[Error] SyntaxError: The string did not match the expected pattern.
	(anonieme functie) (D7AeioLQ.js:1:327)
Overview
URL: https://<OUR-OPENWEBUI-URL>/api/v1/files/
Status: 524
Bron: Netwerk
Adres: ***.***.***.***:443
Initiator: 
index.ts:8

Request
Accept: application/json
Accept-Encoding: gzip, deflate, br
Accept-Language: nl-NL,nl;q=0.9
Authorization: Bearer *********
Content-Length: 25550598
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryjgoN1k8XNngZvogJ
Cookie: oauth_id_token=**********
Origin: https://<OUR-OPENWEBUI-URL>
Priority: u=3, i
Referer: https://<OUR-OPENWEBUI-URL>/notes/eb24f9f8-fea2-407f-b4a1-051e9a41f04f
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15

Antwoord
Alt-Svc: h3=":443"; ma=86400
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
cf-ray: 94226e9cd8be1add-AMS
Content-Length: 7124
Content-Type: text/html; charset=UTF-8
Date: Mon, 19 May 2025 09:07:02 GMT
Expires: Thu, 01 Jan 1970 00:00:01 GMT
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Referrer-Policy: same-origin
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=oM3BCMIZcSgeWV2FyywtYiMj1R%2BZqTAIZtvhDbi%2ForWdflCcYitlcouE1Z3YF5e4M3Dt1ZBVjpGmgBxzd36ByZh4Iuaf8Ytr90r%2FXqxmlIlMlrfRprea8w%2Bn617c2pq2Zw%3D%3D"}],"group":"cf-nel","max_age":604800}
Server: cloudflare
Server-Timing: cfL4;desc="?proto=QUIC&rtt=25119&min_rtt=3923&rtt_var=14475&sent=16523&recv=70868&lost=161&retrans=162&sent_bytes=3495528&recv_bytes=91060498&delivery_rate=635&cwnd=93780&unsent_bytes=0&cid=cb2936daf769db82&ts=671503&x=16"
X-Frame-Options: SAMEORIGIN

First when uploading:
Image

Then after a while when the upload completes, it just disappears:

Image

Additional Information

We're running open-webui behind a Cloudflare proxy. This proxy has a timeout of 100 seconds. Transcription often takes longer than this, in which case Cloudflare decides to send a 524 timeout occurred.

See https://community.cloudflare.com/t/community-tip-fixing-error-524-a-timeout-occurred/42342

Somehow, this also results in the file being completely dropped even when later transcription on the server still succeeds. Preferably, transcription would happen in the background and open-webui would just respond with a processing status until transcription is completed.

Originally created by @JobDoesburg on GitHub (May 19, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/14034 ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.10 ### Ollama Version (if applicable) v0.7.0 ### Operating System Ubuntu 24.04 ### Browser (if applicable) Safari 18.5 ### 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 listed steps to reproduce the bug in detail. ### Expected Behavior After uploading a long `.m4a` or `.mp3` audio file to a note, it is properly attached to my note ### Actual Behavior When upload is complete and transcription is processing, but before transcription finishes, a timeout occurs and the file disappears from the note. ### Steps to Reproduce 1. Create a new note 2. Upload a long audio file (in my case almost 1 hour, which takes some minutes to transcribe) 3. Wait 4. A timeout occurs 5. Even after transcription on the server finishes, the file disappears ### Logs & Screenshots Docker logs: ``` ollama-webui | 2025-05-19 08:51:15.575 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 131.174.142.202:0 - "POST /api/v1/notes/eb24f9f8-fea2-407f-b4a1-051e9a41f04f/update HTTP/1.1" 200 - {} ollama-webui | 2025-05-19 08:51:22.020 | INFO | open_webui.routers.files:upload_file:91 - file.content_type: audio/x-m4a - {} ollama-webui | 2025-05-19 08:51:22.044 | INFO | open_webui.routers.audio:transcribe:781 - transcribe: /app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording.m4a - {} ollama-webui | 2025-05-19 08:51:38.342 | INFO | open_webui.routers.audio:convert_audio_to_mp3:115 - Converted /app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording.m4a to /app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording.mp3 - {} ollama-webui | Chunk paths: ['/app/backend/data/uploads/2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1_recording_compressed.mp3'] ollama-webui | 2025-05-19 08:51:47.814 | INFO | faster_whisper.transcribe:transcribe:839 - Processing audio with duration 53:13.728 - {} ollama-webui | 2025-05-19 08:51:51.196 | INFO | faster_whisper.transcribe:transcribe:906 - Detected language 'nl' with probability 0.93 - {} ollama-webui | 2025-05-19 08:51:51.203 | INFO | open_webui.routers.audio:transcription_handler:548 - Detected language 'nl' with probability 0.925585 - {} ollama-webui | 2025-05-19 08:54:55.271 | INFO | open_webui.routers.retrieval:save_docs_to_vector_db:955 - save_docs_to_vector_db: document recording.m4a file-2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1 - {} ollama-webui | 2025-05-19 08:54:55.283 | INFO | open_webui.routers.retrieval:save_docs_to_vector_db:1038 - adding to collection file-2b0f3eb9-f7b1-4e86-8676-bff208e6bfb1 - {} Batches: 100%|██████████| 1/1 [00:00<00:00, 10.91it/s] ``` Notice that the last lines (`save_docs_to_vector_db` and even later the `Batches: 100%` ) only appear after a long time. In the meantime, the browser already received a `524: A timeout occurred` and the file disappears. Browser logs: ``` [Error] Failed to load resource: the server responded with a status of 524 () (files, line 0) [Error] SyntaxError: The string did not match the expected pattern. (anonieme functie) (D7AeioLQ.js:1:327) ``` ``` Overview URL: https://<OUR-OPENWEBUI-URL>/api/v1/files/ Status: 524 Bron: Netwerk Adres: ***.***.***.***:443 Initiator: index.ts:8 Request Accept: application/json Accept-Encoding: gzip, deflate, br Accept-Language: nl-NL,nl;q=0.9 Authorization: Bearer ********* Content-Length: 25550598 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryjgoN1k8XNngZvogJ Cookie: oauth_id_token=********** Origin: https://<OUR-OPENWEBUI-URL> Priority: u=3, i Referer: https://<OUR-OPENWEBUI-URL>/notes/eb24f9f8-fea2-407f-b4a1-051e9a41f04f Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15 Antwoord Alt-Svc: h3=":443"; ma=86400 Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 cf-ray: 94226e9cd8be1add-AMS Content-Length: 7124 Content-Type: text/html; charset=UTF-8 Date: Mon, 19 May 2025 09:07:02 GMT Expires: Thu, 01 Jan 1970 00:00:01 GMT nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} Referrer-Policy: same-origin Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=oM3BCMIZcSgeWV2FyywtYiMj1R%2BZqTAIZtvhDbi%2ForWdflCcYitlcouE1Z3YF5e4M3Dt1ZBVjpGmgBxzd36ByZh4Iuaf8Ytr90r%2FXqxmlIlMlrfRprea8w%2Bn617c2pq2Zw%3D%3D"}],"group":"cf-nel","max_age":604800} Server: cloudflare Server-Timing: cfL4;desc="?proto=QUIC&rtt=25119&min_rtt=3923&rtt_var=14475&sent=16523&recv=70868&lost=161&retrans=162&sent_bytes=3495528&recv_bytes=91060498&delivery_rate=635&cwnd=93780&unsent_bytes=0&cid=cb2936daf769db82&ts=671503&x=16" X-Frame-Options: SAMEORIGIN ``` First when uploading: <img width="824" alt="Image" src="https://github.com/user-attachments/assets/8e890688-304b-4f3a-93be-b3c3eab59c24" /> Then after a while when the upload completes, it just disappears: <img width="824" alt="Image" src="https://github.com/user-attachments/assets/de8396a6-b450-48cf-99d0-ac4b406a09d4" /> ### Additional Information We're running open-webui behind a Cloudflare proxy. This proxy has a timeout of 100 seconds. Transcription often takes longer than this, in which case Cloudflare decides to send a 524 timeout occurred. See https://community.cloudflare.com/t/community-tip-fixing-error-524-a-timeout-occurred/42342 Somehow, this also results in the file being completely dropped even when later transcription on the server still succeeds. Preferably, transcription would happen in the background and open-webui would just respond with a processing status until transcription is completed.
GiteaMirror added the bug label 2026-05-05 18:01:40 -05:00
Author
Owner

@tjbck commented on GitHub (May 19, 2025):

This is not an Open WebUI issue, and must be resolved from the proxy-end. With that being said, will investigate ways to support Cloudflare.

<!-- gh-comment-id:2890460261 --> @tjbck commented on GitHub (May 19, 2025): This is not an Open WebUI issue, and must be resolved from the proxy-end. With that being said, will investigate ways to support Cloudflare.
Author
Owner

@JobDoesburg commented on GitHub (May 19, 2025):

This is not an Open WebUI issue, and must be resolved from the proxy-end.

I don't fully agree with that. Yes, Cloudflare throws the timeout and would be able to mitigate this specific bug (though you can't in Cloudflare for good reasons). But the underlying problem is in the way Open Web UI processes the audio file.

Even when a timeout occurs, I wouldn't expect Open WebUI to completely drop the file / transcription results. I would expect that transcription goes on in the background (which currently does happen) and when finished, the results are properly stored. Right now, the result of transcription is returned to a broken connection and hence dropped.

Especially with audio files that may take multiple minutes to process, it is not good UX to require users to keep their connection alive all the time while transcription is happening in the background. As a user I should just be able to upload my audio file, close the browser window or move my laptop (break my internet connection) and come back minutes later without losing my audio file.

This is a problem regardless of whether Open WebUI is running behind a proxy or not. Should I reformulate the problem @tjbck ?

<!-- gh-comment-id:2890501303 --> @JobDoesburg commented on GitHub (May 19, 2025): > This is not an Open WebUI issue, and must be resolved from the proxy-end. I don't fully agree with that. Yes, Cloudflare throws the timeout and would be able to mitigate this specific bug (though you can't in Cloudflare for good reasons). But the underlying problem is in the way Open Web UI processes the audio file. Even when a timeout occurs, I wouldn't expect Open WebUI to completely drop the file / transcription results. I would expect that transcription goes on in the background (which currently does happen) and when finished, the results are properly stored. Right now, the result of transcription is returned to a broken connection and hence dropped. Especially with audio files that may take multiple minutes to process, it is not good UX to require users to keep their connection alive all the time while transcription is happening in the background. As a user I should just be able to upload my audio file, close the browser window or move my laptop (break my internet connection) and come back minutes later without losing my audio file. This is a problem regardless of whether Open WebUI is running behind a proxy or not. Should I reformulate the problem @tjbck ?
Author
Owner

@JobDoesburg commented on GitHub (May 21, 2025):

Is this similar to #13027 ?

<!-- gh-comment-id:2896921340 --> @JobDoesburg commented on GitHub (May 21, 2025): Is this similar to #13027 ?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#55781