Skip to content

External S3: large file (re)upload results in upload connection error #16551

@aatdark

Description

@aatdark

⚠️ Before posting ⚠️

  • This is a bug, not a question or an enhancement.
  • I've searched for similar issues and didn't find a duplicate.
  • I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
  • I agree to follow Nextcloud's Code of Conduct.

Steps to reproduce

  1. create a large file (e.g a 100MB video)
  2. upload the file from android client to an external S3 folder
  3. reupload the same file from android client -> fails with connection error

Expected behaviour

successful reupload, no error on app

Actual behaviour

Connection error displayed in Uploads section of the app (after 100% upload). The file is uploaded successfully though

Android version

15

Device brand and model

Fairphone Gen6

Stock or custom OS?

Stock

Nextcloud android app version

3.35.2

Nextcloud server version

32.0.5.0

Using a reverse proxy?

I don't know

Android logs

No response

Server error logs

Additional information

Folder is hosted on external files on a S3 server (garage) on a home internet connection with fast down, slow uplink.
On the web application the re-upload succeeds.

I suspect the timeout settings are different on web / android. After the full upload the backend triggers a GET of the existing video file which takes 3min (slow uplink) to succeed before it executes the PUT.

External Files settings:

  • multipart copy deactivated
  • path style activated
  • legacy auth v2 deactived
# Webinterface upload of already existing file [WORKING]:

garage_s3  | 2026-02-19T10:56:52.348853Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43966 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T10:56:52.394129Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43966 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket?versioning
garage_s3  | 2026-02-19T10:56:52.468786Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43966 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T10:56:52.891325Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43970 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T10:56:52.937044Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43970 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4
// --- conflict resolution on web interface - upload new file
garage_s3  | 2026-02-19T10:57:03.089737Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:50888 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T10:57:03.098849Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:50894 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T10:57:03.133607Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:50888 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4
garage_s3  | 2026-02-19T10:57:03.143382Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:50894 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T10:57:20.151673Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T10:57:20.197166Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T10:57:20.311419Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&prefix=VID.mp4%2F&max-keys=1
garage_s3  | 2026-02-19T10:57:20.357564Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4/
garage_s3  | 2026-02-19T10:57:20.358162Z  INFO garage_api_common::generic_server: Response: error 404 Not Found, Key not found
garage_s3  | 2026-02-19T10:57:20.490956Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59850 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/VID.mp4
// ---  slow because of uplink limitation
garage_s3  | 2026-02-19T10:59:04.520997Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) POST /nextcloud-bucket/VID.mp4?uploads
garage_s3  | 2026-02-19T10:59:05.216212Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) PUT /nextcloud-bucket/VID.mp4?partNumber=1&uploadId=67d32da828a3bdf7b6ca7c64fb3e8d57afc184a5ed11285f95658f820042fa6e
garage_s3  | 2026-02-19T10:59:30.927267Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) POST /nextcloud-bucket/VID.mp4?uploadId=67d32da828a3bdf7b6ca7c64fb3e8d57afc184a5ed11285f95658f820042fa6e
garage_s3  | 2026-02-19T10:59:30.984876Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4
garage_s3  | 2026-02-19T10:59:31.029204Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&prefix=VID.mp4%2F&max-keys=1
garage_s3  | 2026-02-19T10:59:31.074184Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:59840 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4/
garage_s3  | 2026-02-19T10:59:31.074847Z  INFO garage_api_common::generic_server: Response: error 404 Not Found, Key not found
garage_s3  | 2026-02-19T10:59:31.928668Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43226 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T10:59:31.974708Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43226 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket?versioning
garage_s3  | 2026-02-19T10:59:32.024018Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:43226 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=

result: successful upload on webinterface, no error msg

# Upload with android app [UPLOAD ERROR]

garage_s3  | 2026-02-19T11:01:43.767890Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:52514 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:43.814283Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:52514 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket?versioning
garage_s3  | 2026-02-19T11:01:44.039441Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:52514 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:01:44.400690Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:52518 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:44.444850Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:52518 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:01:47.751720Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:51428 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:47.797210Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:51428 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:01:48.191809Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:51442 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:48.237515Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:51442 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:01:48.683772Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:51448 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:48.729514Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:51448 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:01:56.647815Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34758 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:56.692371Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34758 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:01:57.197538Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34768 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:01:57.243525Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34768 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4
/-- conflict resultion on app - reupload local version
garage_s3  | 2026-02-19T11:02:02.249542Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34770 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:02:02.295038Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34770 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:02:03.094929Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34782 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:02:03.139062Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:34782 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:02:10.511900Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:46176 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:02:10.557636Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:46176 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:02:16.530758Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56800 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:02:16.575120Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56800 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:02:20.851165Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket
garage_s3  | 2026-02-19T11:02:20.897083Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&delimiter=%2F&prefix=
garage_s3  | 2026-02-19T11:02:21.012729Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&prefix=VID.mp4%2F&max-keys=1
garage_s3  | 2026-02-19T11:02:21.059340Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4/
garage_s3  | 2026-02-19T11:02:21.060216Z  INFO garage_api_common::generic_server: Response: error 404 Not Found, Key not found
garage_s3  | 2026-02-19T11:02:21.217087Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56826 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/VID.mp4

/-- Connection error on app in Uploads section around 2026-02-19T11:03:30
/-- s3 is completing the GET request

garage_s3  | 2026-02-19T11:04:07.180588Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) POST /nextcloud-bucket/VID.mp4?uploads
garage_s3  | 2026-02-19T11:04:07.912136Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) PUT /nextcloud-bucket/VID.mp4?partNumber=1&uploadId=71a92c2083912de1fae7d44de886c2449956519396b3b9c3bd92d4f53637afe4
garage_s3  | 2026-02-19T11:04:33.690146Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) POST /nextcloud-bucket/VID.mp4?uploadId=71a92c2083912de1fae7d44de886c2449956519396b3b9c3bd92d4f53637afe4
garage_s3  | 2026-02-19T11:04:33.750501Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4
garage_s3  | 2026-02-19T11:04:33.796197Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) GET /nextcloud-bucket/?list-type=2&prefix=VID.mp4%2F&max-keys=1
garage_s3  | 2026-02-19T11:04:33.842764Z  INFO garage_api_common::generic_server: [::ffff:172.30.198.5]:56814 (key GK1687cb20redacted2e99e257) HEAD /nextcloud-bucket/VID.mp4/
garage_s3  | 2026-02-19T11:04:33.843177Z  INFO garage_api_common::generic_server: Response: error 404 Not Found, Key not found

result: upload seems successful, error on app persists.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions