Nextcloud

From Woozle Writes Code
Jump to navigation Jump to search

Nextcloud is a self-hosted file-sync application written in PHP. We've used it pretty heavily for many years now (and ownCloud, its predecessor, before that). Despite being a pretty nifty package in a lot of ways (especially as a concept), it increasingly has lots of little problems that are making it more and more difficult to use and maintain.

The following issues are in no particular order.

Issues

Web UI

Upgrade Button Unresponsive

When there is an upgrade available, the "Open updater" button on this page --

2023-08-19 at 20-59-57.screen.Nextcloud start update button.png

-- will often be unresponsive for a long time, even after all the security checks (above it on the page) have finished. Usually if I go off and do something else for about 10 minutes, it will become live (there is no visual indication of this; I just have to try clicking) and I can then start the upgrade. This has been a problem through at least a few major versions now.

Mobile UI

Uploads Get Stuck

Waiting for Godot to Upload

Sometimes automatic uploads just stop, for no apparent reason, and give very little information about why. Why is it "Waiting to upload"? What is it waiting for? Tapping or press/holding an individual file might get more information, or might not. Sometimes it will get the process started, but often nothing happens and you can't tell if it's locked up or overloaded or if it's not supposed to do anything when you do that.

What needs fixing:

  • There should be a way to inquire about the upload status of a given file or folder. (Is it expected to upload? If it's not expected to, what condition (settings flag / current status) is preventing it?)
  • There should be a way to poke a particular file or folder to auto-upload, regardless of other settings.

Sync Conflict

Whatever happened to "(3)"?

The mobile client appears to be unable to detect when a file it thinks it needs to upload is binary-identical to an eponymous file on the server, leading to unnecessary reports of sync conflicts. Worse, it often gets into a state where it tries to re-upload files it has already uploaded, and then decides there is a sync conflict because the file already exists.

What needs fixing:

  • The server should send a hash of its file when reporting a conflict, so that the client can automatically detect unnecessary uploads.
  • The UI for resolving conflicts is bad. You can just about get through resolving two conflicts before it retries uploading all the "conflicted" files in the list -- which can take quite awhile -- and you can't resolve any further conflicts while this is happening.
  • Whatever method the client uses to detect "new" files is apparently unreliable and frequently gives false positives.
  • It would be even better if the web UI provided a sync-conflict-resolution UI, allowing for easier and more powerful interaction modes than mobile does.