Android-App geht fälschlicherweise in den "Wartungsmodus"?

Auf der Nextcloud-Instanz ist als externer Speicher eine kleine schwache Synology mit ca. 100 GB Musikdateien über WebDAVs eingebunden.

Möchte man diesen Ordner am Handy synchronisieren, kommt es oft zu einem Timeout aber der Android-Client meldet dann fälschlicherweise “Server befindet sich im Wartungsmodus” obwohl das gar nicht stimmt.

Der “Wartungsmodus” verschwindet zwar nach einer Zeit von selber wieder, dann kannst du wieder von vorne beginnen die Dateien zu synchroisieren.

Und wenn du Pech hast verschwindet dieser Ordner wieder vom Handy und du kannst die ganzen Dateien nochmal herunter laden.

Insgesamt sehr mühsam den externen Order am Handy zu synchronisieren.

Wie kriegt man diesen Fehler weg?

Vielen Dank!

Fehlermeldung in nextcloud.log:

"CustomMessage": "cURL error 28: Operation timed out after 30000 milliseconds with 199573504 out of 204511465 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://next.clo.ud/Musik/musik.flac"

Kleiner Nachtrag: Der Fehler tritt immer dann auf wenn die Datei größer als ca. 180 MB ist. Dann steht in der Apache-Log ein “Error 503”.

Dieser Timeout kann verschiedene Gründe haben. Kann sein, dass dein PHP nach 30s einfach nicht fertig geworden ist, weil es auf die Datenbank warten musste, der Dateizugriff zu lange dauert, …

Man kann versuchen, das Zeitlimit einfach zu erhöhen, aber das macht es nicht immer besser (wenn die Datenbank überlastet ist, kann es dadurch noch schlechter werden). Vor allem wenn der Server nicht so viel Leistung hat, kann das kompliziert werden. Mit top, iotop, iptraf etc. kannst du versuchen zu schauen, ob Netzwerk, CPU, Speicher oder Dateizugriff limitierende Faktoren sind (vor allem wenn der Speicher nicht auf der Festplatte ist und über das Netz kommt).

Was prinzipiell hilft: Caching nimmt dir Last von den Datenbankzugriffen, vor allem mit viel RAM ist das gut, bei wenig, …
Falls zu viel gleichzeitig läuft, evtl. mal schauen wie viele Verbindungen gleichzeitig möglich sind → einmal vom Webserver, dann die PHP-Sessions (php-fpm). Falls die Apps zu viele parallele Uploads machen, kann das helfen.

Du überträgst hier ~6.5MB/s, das ist nicht besonders schnell. Ich würde daher versuchen, einfach das Zeitlimit von PHP etwas hochzusetzen (60 s), und schau dann, ob es besser wird.