Operating system and version (e.g., Ubuntu 24.04):
Ubuntu 22.04 LTS
Web server and version (e.g, Apache 2.4.25):
Apache 2.4
Reverse proxy and version _(e.g. nginx 1.27.2)
HAProxy 2.6 (acting as SSL termination + load balancer)
PHP version (e.g, 8.3):
8.2.29
Is this the first time you’ve seen this error? (Yes / No):
Yes
When did this problem seem to first start?
After upgrading from 30.0.16 → 31.0.9
Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
Manual archive install (bare metal)
Are you using CloudfIare, mod_security, or similar? (Yes / No)
No
When using Android Talk v22.0.2 on Nextcloud 31.x configured with Amazon S3 as primary storage, all uploads (images, PDFs, etc.) appear as 0 B files and can’t open even though the upload completes.
The exact same configuration works perfectly on Nextcloud 30.0.16, and also when using a local data directory (/var/www/html/nextcloud/data).
→ This regression occurs only when S3 is the primary storage.
Steps
Configure Nextcloud 31.0.9 (or 31.0.10) with S3 as primary storage
Connect Android Talk 22.0.2 to the server
Send any photo or PDF via Talk
Upload finishes but file shows 0 B in Talk and Web UI
Same operation via Web UI or iOS Talk → OK
Log entries
dirty table reads: SELECT fileid FROM *PREFIX*filecache
OC\Image::fixOrientation(): No image loaded
userAgent: Mozilla/5.0 (Android) Nextcloud-Talk v22.0.2
The output of your Apache/nginx/system log in /var/log/____:
No Apache errors; S3 PUT requests return 200 OK.
Configuration
Nextcloud
The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):
Thanks for your comment
I uploaded the image from the Android Talk app.
The upload succeeded on S3 — the object exists and has the correct size.
However, the file appears as 0 B in both the Web UI and the database.
So the object is correctly stored in S3 (2,183,851 bytes), but Nextcloud reports it as 0 B.
It looks like a metadata inconsistency between S3 and the database, but I could be wrong.
I’m seeing the same issue on NC 31.0.9/31.0.10 with S3 as primary storage. Android Talk uploads complete but the files show up as 0 B, while everything works normally on NC 30.0.16. Seems like something broke in the NC31 + S3 handling. Hope the team can confirm if this is a known bug or if a fix is coming.
It looks like this issue started right after upgrading to Nextcloud 31.x, so it’s likely a compatibility bug between Android Talk v22.0.2 and the new S3 primary-storage handling. Since uploads work normally on 30.0.16, the problem isn’t your server setup — it’s something introduced in the 31.x update, and others using S3 may be running into the same thing. A fix will probably require a patch from Nextcloud.
In my environment, I am not using S3 as the primary storage.
However, I am experiencing a similar issue.
The storage I am using is ConoHa’s object storage, which is available within Japan.
By the way, it works fine on the iPhone Talk app, so it might be an issue with the Android Talk app.
Hello,
I’d like to share a retest result.
In my environment with S3-compatible primary storage, the Talk Android upload → 0 B issue is reproducible on Nextcloud 31, 32, and 33 (33.0.1 RC2).
In the same environment, iPhone and Web uploads are normal.
What we confirmed:
In failing cases, the S3 object itself can still be uploaded successfully
But Nextcloud metadata (filecache size) can become inconsistent, resulting in 0 B entries
We also found and fixed a server-side prerequisite issue (temp/cron FileSequence not writable), but that alone did not fully explain the Android+S3 0 B behavior
Current status:
With a local patch in ObjectStoreStorage size reconciliation logic, new Talk uploads no longer become 0 B
This is only a local workaround, not an official upstream fix
Questions:
Is there an upstream fix/PR/backport planned for Android Talk + S3 primary storage 0 B / size inconsistency?
If useful, I can open a new GitHub issue with reproduction steps, logs, SQL evidence, and a minimal patch diff.