owncloud / owncloud/ios-app

File made offline cannot be opened if owncloud backend isn't available

Open
#889 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs-info
Dominant language
Swift
Stars
251
Forks
142
Avg merge
2d 17h
Merged PRs (30d)
3

Description

Any file which is marked as "Offline available" and already downloaded by owncloud iOS app, cannot be opened in an app if the owncloud backend isn't currently running. This is a major issue related to the "Offline available" feature of the iOS app.

Steps to reproduce
  1. mark a keepass file in owncloud iOS as "Offline available"
  2. wait until it's downloaded by the owncloud iOS app
  3. open it with the "Keepassium" app
  4. close Keepassium, reopen it => keepass file is opened again
  5. close Keepassium
  6. disconnect the iOS device from the network (or shutdown the owncloud backend) so the owncloud backend isn't available
  7. open Keepassium again after it has been closed for several hours => keepass file cannot be opened
Expected behavior

Keepass file can be opened in step 6, because it's marked as "Offline available".

Actual behavior

Keepass file cannot be opened by KeePassium.

I assume it's because of the provider for the file (the owncloud iOS app) doesn't allow the file to be opened because it tries to load the file again from the owncloud backend which fails.

Is there any code which makes the owncloud iOS to invalidate the file handle after the file has not been used for hours? - I don't know. I've observed that the problem only occurs if I didn't use KeePassium for hours and then reopen it.

Client

iOS version:

14.4

ownCloud app version:

11.4.5 build 182

Device model:

iPhone XR

Server configuration
  • Docker image: owncloud/server:10.6.0, mariadb:10.5.8, redis:6.2-rc2
  • nginx as reverse proxy / https
Logs

No logs available.

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 six-step scenario on iOS 14.4 with ownCloud 11.4.5, especially reopening the downloaded file after several hours offline. Investigate the Offline available file-opening flow and its interaction with the ownCloud provider. Done means KeePassium can reopen the downloaded KeePass file after the backend or network is unavailable.

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
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.