Convex Self-Hosted Storage Delete Failure (MinIO/Cloudflare)
Summary: File deletion removes metadata (Convex Dashboard UI updates) but the S3 object remains in MinIO.
Relevant Details:
* Setup: Self-hosted Convex via Docker, MinIO, with a Cloudflare-proxied HTTPS endpoint.
* Works: Uploads/Downloads (GET/POST) are 100% functional.
* Fails: Deletion. Files stay in the bucket (unversioned).
* Debugging Proof: Manual external
DELETE using the exact S3 credentials/endpoint (via Postman) was successful (HTTP 200). This rules out Cloudflare WAF, MinIO, and credential issues.
* Problem: Backend logs show NO S3 DELETE request is ever attempted by the cleanup worker, even with RUST_LOG: debug on file_storage. The failure is silent and occurs before connection.
Steps to Reproduce: Delete any file in the Convex Files dashboard.
Language: Just using dashboard to test before implement
Connection Check: Not applicable; the connection works for POST/GET, but the internal DELETE worker fails to fire.
Any ideas why the cleanup hook fails silently when the connection is externally proven? 🙏3 Replies
Thanks for posting in <#1088161997662724167>.
Reminder: If you have a Convex Pro account, use the Convex Dashboard to file support tickets.
- Provide context: What are you trying to achieve, what is the end-user interaction, what are you seeing? (full error message, command output, etc.)
- Use search.convex.dev to search Docs, Stack, and Discord all at once.
- Additionally, you can post your questions in the Convex Community's <#1228095053885476985> channel to receive a response from AI.
- Avoid tagging staff unless specifically instructed.
Thank you!
MINIO:
Backend:
Dashboard:
SQL:
Apparently, this is not a problem with my implementation or configuration. It is a current limitation of convex
https://github.com/get-convex/convex-backend/issues/93
GitHub
logs and file are not being deleted on self-hosted · Issue #93 · ...
Actual blob files are not deleted from storage/files Also with a lot of updates db grows out of control, even deleting all tables, system tables take gigabytes.