[Bug]: Upload requests can remain “pending” after interruption, causing inconsistent app state
#34,226 opened on 2025年10月21日
説明
Before you file a bug report
- I have checked the issue tracker and have not found an issue that matches the one I'm filing.
- This issue is not a troubleshooting question. Troubleshooting questions go here: https://forum.mattermost.com/c/trouble-shoot/16.
- This issue is not a feature request. You can request features and make product suggestions here: https://mattermost.uservoice.com/forums/306457-general/.
- This issue reproduces on one of the currently supported server versions.
- I have read the contribution guidelines and the Mattermost Handbook Contribution Guidelines.
Mattermost Server Version
Server Version: 11.1.0 Load Metric: 3 Database Schema Version: 143 Build Number: 18657393317 Database: postgres
Operating System
macos
Steps to reproduce
- Start uploading a new file, as if composing a new message.
- While the upload is in progress, refresh the page (this doesn’t cause the bug itself but reliably exposes it).
Expected behavior
- Start uploading a new file, as if composing a new message.
- While the upload is in progress, refresh the page.
- The upload area should disappear, or any “almost uploaded” files should be marked as errored, allowing the user to retry or cancel them.
Observed behavior
The upload area remains visible but shows no files, blocking the draft from being sent. The upload state is broken, and refreshing the page does not fix it. Sometimes switching to another channel resets the state, but not consistently. In these cases, the user is completely stuck and cannot send a new message in that channel.
Additional Information
I couldn’t upload the video directly to GitHub (it failed), so I’ve created an external link for it — it’s a reproduction on the community webapp.
To reliably reproduce the bug, we use a page refresh, but it can also occur in more subtle cases — for example, when behind a VPN or on an unstable network. In such situations, the XHR request may remain pending client-side, causing the upload progress to stop updating. If the user then refreshes or leaves the page at that moment, the issue can occur