nextcloud / nextcloud/ios

Upload loop after modifying a file from ios filesystem

Open
#2,953 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Swift
Stars
2.5k
Forks
1k
Avg merge
2d 18h
Merged PRs (30d)
13

Description

Steps to reproduce
  1. Open a file synced to Nextcloud from an app on ios using the ios filebrowser. File is downloaded like it should.
  2. Edit and save the file.
  3. The file is stuck in an endless loop of uploading until I switch folder.
Expected behaviour

Uploading the file once.

Actual behaviour

The file is uploaded multiple times, until I navigate to other folders synced to Nextcloud.

Logs

After modifying a single picture on my iPad, this will go on until I change to another folder:

2024-06-21 11:30:35 Network request started: GET <REDACTED/index.php/core/preview.png?file=InstantUpload/Camera/2024REDACTED.jpg&x=2048.0&y=2048.0&a=1&mode=cover>

2024-06-21 11:30:36 Network request started: GET REDACTED/remote.php/dav/files/REDACTED/InstantUpload/Camera/2024REDACTED.jpg>

2024-06-21 11:30:36 Network request started: GET <REDACTED/index.php/core/preview.png?file=InstantUpload/Camera/2024REDACTED.jpg&x=2048.0&y=2048.0&a=1&mode=cover>

2024-06-21 11:30:37 Network request started: GET <REDACTED/remote.php/dav/files/REDACTED/InstantUpload/Camera/2024REDACTED.jpg>

2024-06-21 11:30:38 Network request started: GET <REDACTED/index.php/core/preview.png?file=InstantUpload/Camera/2024REDACTED.jpg&x=2048.0&y=2048.0&a=1&mode=cover>

2024-06-21 11:30:39 Network request started: GET <REDACTED/remote.php/dav/files/REDACTED/InstantUpload/Camera/2024REDACTED.jpg>

2024-06-21 11:30:39 Network request started: GET <REDACTED/index.php/core/preview.png?file=InstantUpload/Camera/2024REDACTED.jpg&x=2048.0&y=2048.0&a=1&mode=cover>

2024-06-21 11:30:40 Network request started: GET <REDACTED/remote.php/dav/files/REDACTED/InstantUpload/Camera/2024REDACTED.jpg>

2024-06-21 11:30:41 Network request started: GET <REDACTED/index.php/core/preview.png?file=InstantUpload/Camera/2024REDACTED.jpg&x=2048.0&y=2048.0&a=1&mode=cover>

2024-06-21 11:30:42 Network request started: GET <REDACTED/remote.php/dav/files/REDACTED/InstantUpload/Camera/2024REDACTED.jpg>

On the server side, I see this error:

FileLocked "InstantUpload/Camera/2024REDACTED.jpg" is locked, existing lock on file: 2 shared locks

And also a bunch of:

 Exception HMAC does not match.
Could not decrypt or decode encrypted session data 

This last error is related to the ios client, looking at the raw entry. The file is still uploaded to the server.

Reasoning or why should it be changed/implemented?

It's a bug. Working great under Windows and Android.

Environment data

iPadOS 17.5.1:

Nextcloud Hydrogen for iOS 5.3.2.0

Server operating system:

Apache

MariaDB:

PHP version: using the latest official Docker image

Server 29.0.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the loop through the iOS filebrowser using the listed iPadOS, Hydrogen, and server versions, then trace the file upload and sync flow involved after a local edit. The fix is done when an edited file uploads once and navigation is no longer required to stop repeated requests; verify against the reported file-lock behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.