mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-16 14:39:31 -05:00
[GH-ISSUE #16213] issue: [Errno 30] Read-only file system: '/nonexistent' on .xlsx file upload in read-only Docker environment #17824
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @joewang705 on GitHub (Aug 1, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16213
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.15
Ollama Version (if applicable)
No response
Operating System
Docker container (Linux) running on ECR instance
Browser (if applicable)
Chrome
Confirmation
README.md.Expected Behavior
When uploading .xlsx files in a read-only Docker environment with tmpfs mounts for data and static directories, the file should be processed successfully without filesystem write errors.
Actual Behavior
File upload fails with error: [Errno 30] Read-only file system: '/nonexistent'
Steps to Reproduce
`docker run -v /path/to/hugging_face:/hugging_face
-e HF_HOME=/hugging_face
-v /path/to/webui_secret_key:/webui_secret_key
-e ENABLE_OLLAMA_API=false
-e ENABLE_OPENAI_API=true
-e DATA_DIR=/data
-e STATIC_DIR=/static
-e OPENAI_API_KEY='[redacted]'
-e WEBUI_SECRET_KEY=/webui_secret_key
--read-only
-p 5173:5173 -p 8080:8080
--tmpfs /static
--tmpfs /data
--tmpfs /tmp
[our-ecr-image]`
Logs & Screenshots
In console log:
File upload warning: [Errno 30] Read-only file system: '/nonexistent'@ https://github.com/open-webui/open-webui/blob/b8da4a8cd8257d4846f3608e299618a0b4f185ed/src/lib/components/chat/MessageInput.svelte#L559Additional Information
We were able to track down the root cause to be related to the document processing/embedding code (LangChain ExcelLoader here https://github.com/open-webui/open-webui/blob/b8da4a8cd8257d4846f3608e299618a0b4f185ed/backend/open_webui/routers/retrieval.py#L1330) which in some ay is attempting to write to a hardcoded path '/nonexistent' instead of using the configured temporary directories or respecting the read-only filesystem constraints
@rgaricano commented on GitHub (Aug 1, 2025):
not sure (i don't use docker) but, did you set tmpfs flag for exec & rw? ( e.g.
--tmpfs /mytmp:exec ubuntu bash -c "mount | grep mytmp" tmpfs on /mytmp type tmpfs (rw,nosuid,nodev,relatime))@tjbck commented on GitHub (Aug 2, 2025):
Unable to reproduce, keep us updated.