I have searched the existing issues and discussions.
I am using the latest version of Open WebUI.
Installation Method
Docker
Open WebUI Version
0.6.16
Ollama Version (if applicable)
0.9.6
Operating System
Truenas 24.10.2.2
Browser (if applicable)
Edge 138.0.3351.83
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
OWUI should retrieve content of a upload fils in the chat as worked before
Seems that OWUI try to convert txtfile to Audio\mp3.
Actual Behavior
When uploading a .txt file I got this Yellow error :
[ERROR: stat: path should be string, bytes, os.PathLike or integer, not NoneType]
Steps to Reproduce
Update to 0.6.16
Allow every filetype in Admin \ Settings \ Documents (empty value or specific value)
Open a new chat (or existing)
Select a model with uploading file allowed
Upload a file
Logs & Screenshots
2025-07-18 08:30:30.780 | INFO | open_webui.routers.files:upload_file:94 - file.content_type: text/plain - {}
2025-07-18 08:30:30.783 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - IP:0 - "GET /_app/immutable/nodes/22.DmSSDpVK.js HTTP/1.1" 200 - {} 2025-07-18 08:30:30.795 | INFO | open_webui.routers.audio:transcribe:802 - transcribe: /app/backend/data/uploads/7d8ed53b-57a3-40a4-b117-2fdadec10700_nouveau 4.txt {} - {}
2025-07-18 08:30:31.174 | ERROR | open_webui.routers.audio:convert_audio_to_mp3:119 - Error converting audio file: list index out of range - {}
2025-07-18 08:30:31.174 | ERROR | open_webui.routers.audio:transcribe:810 - stat: path should be string, bytes, os.PathLike or integer, not NoneType - {}
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap
self._bootstrap_inner()
│ └ <function Thread._bootstrap_inner at 0x7f85d40f49a0>
└ <WorkerThread(AnyIO worker thread, started 140207641462464)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function WorkerThread.run at 0x7f84e0151ee0>
└ <WorkerThread(AnyIO worker thread, started 140207641462464)>
File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
result = context.run(func, *args)
│ │ │ └ ()
│ │ └ functools.partial(<function upload_file at 0x7f85605c7740>, user=UserModel(id='dfd57a07-6db4-424c-94f3-9005a60ff414', name='G...
│ └ <method 'run' of '_contextvars.Context' objects>
└ <_contextvars.Context object at 0x7f84d059c7c0>
File "/app/backend/open_webui/routers/files.py", line 172, in upload_file
result = transcribe(request, file_path, file_metadata)
│ │ │ └ {}
│ │ └ '/app/backend/data/uploads/7d8ed53b-57a3-40a4-b117-2fdadec10700_nouveau 4.txt'
│ └ <starlette.requests.Request object at 0x7f84d0fe3750>
└ <function transcribe at 0x7f85605c4fe0>
File "/app/backend/open_webui/routers/audio.py", line 808, in transcribe
file_path = compress_audio(file_path)
│ └ None
└ <function compress_audio at 0x7f85605c5080>
File "/app/backend/open_webui/routers/audio.py", line 855, in compress_audio
if os.path.getsize(file_path) > MAX_FILE_SIZE:
│ │ │ │ └ 20971520
│ │ │ └ None
│ │ └ <function getsize at 0x7f85d403fec0>
│ └ <module 'posixpath' (frozen)>
└ <module 'os' (frozen)>
File "", line 50, in getsize
TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
2025-07-18 08:30:31.191 | ERROR | open_webui.routers.audio:transcribe:817 - stat: path should be string, bytes, os.PathLike or integer, not NoneType - {}
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap
self._bootstrap_inner()
│ └ <function Thread._bootstrap_inner at 0x7f85d40f49a0>
└ <WorkerThread(AnyIO worker thread, started 140207641462464)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function WorkerThread.run at 0x7f84e0151ee0>
└ <WorkerThread(AnyIO worker thread, started 140207641462464)>
File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
result = context.run(func, *args)
│ │ │ └ ()
│ │ └ functools.partial(<function upload_file at 0x7f85605c7740>, user=UserModel(id='dfd57a07-6db4-424c-94f3-9005a60ff414', name='G...
│ └ <method 'run' of '_contextvars.Context' objects>
└ <_contextvars.Context object at 0x7f84d059c7c0>
File "/app/backend/open_webui/routers/files.py", line 172, in upload_file
result = transcribe(request, file_path, file_metadata)
│ │ │ └ {}
│ │ └ '/app/backend/data/uploads/7d8ed53b-57a3-40a4-b117-2fdadec10700_nouveau 4.txt'
│ └ <starlette.requests.Request object at 0x7f84d0fe3750>
└ <function transcribe at 0x7f85605c4fe0>
File "/app/backend/open_webui/routers/audio.py", line 814, in transcribe
chunk_paths = split_audio(file_path, MAX_FILE_SIZE)
│ │ └ 20971520
│ └ None
└ <function split_audio at 0x7f85605c5120>
File "/app/backend/open_webui/routers/audio.py", line 878, in split_audio
file_size = os.path.getsize(file_path)
│ │ │ └ None
│ │ └ <function getsize at 0x7f85d403fec0>
│ └ <module 'posixpath' (frozen)>
└ <module 'os' (frozen)>
File "", line 50, in getsize
TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
2025-07-18 08:30:31.207 | ERROR | open_webui.routers.files:upload_file:191 - 400: [ERROR: stat: path should be string, bytes, os.PathLike or integer, not NoneType] - {}
Traceback (most recent call last):
File "/app/backend/open_webui/routers/audio.py", line 814, in transcribe
chunk_paths = split_audio(file_path, MAX_FILE_SIZE)
│ │ └ 20971520
│ └ None
└ <function split_audio at 0x7f85605c5120>
File "/app/backend/open_webui/routers/audio.py", line 878, in split_audio
file_size = os.path.getsize(file_path)
│ │ │ └ None
│ │ └ <function getsize at 0x7f85d403fec0>
│ └ <module 'posixpath' (frozen)>
└ <module 'os' (frozen)>
File "", line 50, in getsize
TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap
self._bootstrap_inner()
│ └ <function Thread._bootstrap_inner at 0x7f85d40f49a0>
└ <WorkerThread(AnyIO worker thread, started 140207641462464)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function WorkerThread.run at 0x7f84e0151ee0>
└ <WorkerThread(AnyIO worker thread, started 140207641462464)>
File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
result = context.run(func, *args)
│ │ │ └ ()
│ │ └ functools.partial(<function upload_file at 0x7f85605c7740>, user=UserModel(id='dfd57a07-6db4-424c-94f3-9005a60ff414', name='G...
│ └ <method 'run' of '_contextvars.Context' objects>
└ <_contextvars.Context object at 0x7f84d059c7c0>
File "/app/backend/open_webui/routers/files.py", line 172, in upload_file
result = transcribe(request, file_path, file_metadata)
│ │ │ └ {}
│ │ └ '/app/backend/data/uploads/7d8ed53b-57a3-40a4-b117-2fdadec10700_nouveau 4.txt'
│ └ <starlette.requests.Request object at 0x7f84d0fe3750>
└ <function transcribe at 0x7f85605c4fe0>
File "/app/backend/open_webui/routers/audio.py", line 818, in transcribe
raise HTTPException(
└ <class 'fastapi.exceptions.HTTPException'>
fastapi.exceptions.HTTPException: 400: [ERROR: stat: path should be string, bytes, os.PathLike or integer, not NoneType]
2025-07-18 08:30:31.224 | ERROR | open_webui.routers.files:upload_file:192 - Error processing file: 7d8ed53b-57a3-40a4-b117-2fdadec10700 - {}
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @GlisseManTV on GitHub (Jul 18, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/15828
Check Existing Issues
Installation Method
Docker
Open WebUI Version
0.6.16
Ollama Version (if applicable)
0.9.6
Operating System
Truenas 24.10.2.2
Browser (if applicable)
Edge 138.0.3351.83
Confirmation
README.md.Expected Behavior
OWUI should retrieve content of a upload fils in the chat as worked before
Seems that OWUI try to convert txtfile to Audio\mp3.
Actual Behavior
When uploading a .txt file I got this Yellow error :
[ERROR: stat: path should be string, bytes, os.PathLike or integer, not NoneType]
Steps to Reproduce
Update to 0.6.16
Allow every filetype in Admin \ Settings \ Documents (empty value or specific value)
Open a new chat (or existing)
Select a model with uploading file allowed
Upload a file
Logs & Screenshots
Additional Information
Worked in 0.6.14
@tjbck commented on GitHub (Jul 18, 2025):
Unable to reproduce from our end, keep us updated!