block / block/buzz

Mobile: stalled media uploads cannot be cancelled or dismissed

Open
#3,764 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

**Describe the bug**

On Buzz Mobile for iOS, an image upload against a self-hosted relay can remain in the composer indefinitely with no way to cancel it. In the observed case the request eventually failed with:

```text
upload failed (401): {"error":"authentication failed"}
```

The failed state can be cleared only by leaving or retrying the composer flow. The underlying cause of the 401 is not yet known.

**Steps to reproduce**

1. Pair Buzz Mobile with a self-hosted community.
2. Connect over cellular.
3. Open a private channel and select a small image from Photos.
4. Observe the attachment progress tile.
5. If the request stalls or authentication fails, try to cancel or dismiss it.

**Expected behavior**

- A pending upload can be cancelled without leaving the composer.
- An upload that never completes times out with actionable copy.
- A failed-upload message can be dismissed.
- The relay or client log explains why a valid paired member received a 401.

**Version and platform**

- Buzz Mobile: v0.4.12
- Platform: iOS
- Relay: self-hosted `87b3fcd`, behind HTTPS/WSS
- Network: cellular

**Logs / additional context**

- Messages, search, reconnect, and a separate sanitized relay-side media upload probe succeeded against the same deployment.
- The mobile request alone returned the 401 shown above.
- The relay logs did not expose a corresponding authentication reason at the default log level.
- This appears distinct from the iOS metadata/422 failure fixed in #2185.
- #3224 and #3231 cover half-open mobile WebSockets, which may explain slow reconnects but do not cover media-upload cancellation or this 401.
- No matching open issue or PR was found for the upload recovery behavior.

A focused recovery change can add cancellation, timeout, and dismiss controls without weakening relay authentication. The 401 root cause should remain a separate diagnostic follow-up unless it can be reproduced reliably.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.