Öffentlicher Freigabelink mit Ablaufdatum läuft sofort ab (Nextcloud 34.0.2.1, Docker, PostgreSQL)
The Basics
-
Nextcloud Server Version: 34.0.2 (34.0.2.1)
-
Installation: Docker (docker-compose, offizielles Nextcloud-Image)
-
Host-System: Ubuntu 24.04, Linux 6.8.0-136-generic x86_64
-
Webserver im Container: Apache/2.4.68 (Debian) (apache2handler)
-
PHP-Version: 8.5.8
-
Datenbank: PostgreSQL 17.10 (Debian Paket)
-
Reverse Proxy: (falls vorhanden: hier kurz angeben, z. B. nginx / Traefik / Caddy; sonst „kein Reverse Proxy“)
-
Zum ersten Mal gesehen? Ja
Ich habe eine zweite Nextcloud-Instanz mit derselben Nextcloud-Version und ähnlichem Setup, aber mit MySQL 10.11.18 als Datenbank. Auf dieser zweiten Instanz tritt der Fehler nicht auf – zeitlich begrenzte Freigabelinks funktionieren dort wie erwartet.nc_not_working.md+1
Schritte zur Reproduktion
-
Als normaler Benutzer in der Web-Oberfläche anmelden.
-
Eine Datei oder einen Ordner im „Dateien/Files“-Modul auswählen.
-
Über „Teilen“ einen öffentlichen Link erstellen.
-
Im Teilen-Dialog ein Ablaufdatum setzen (z. B. 27.07.2026).
-
Den Teilen-Dialog speichern/schließen.
-
Einige Sekunden warten und:
-
entweder den Link im Browser öffnen,
-
oder im Teilen-Dialog bzw. in der Aktivitäten-App nachsehen.
-
Erwartetes Verhalten
-
Der öffentliche Link bleibt bis zum Ende des eingestellten Tages gültig (in Nextcloud 34 laut Änderung des Ablaufverhaltens: bis ca. 23:59:59 des gewählten Datums).nextcloud.stylez.co
-
Der Aktivitäten-Log zeigt den Ablauf erst zum eingestellten Datum/Zeitpunkt.
Tatsächliches Verhalten
-
Der Link wird bereits wenige Sekunden nach dem Erstellen als abgelaufen behandelt.
-
Im Aktivitäten-Log ist zu sehen, dass die Freigabe ca. 30–40 Sekunden nach dem Erstellen als „abgelaufen“ markiert wird.
-
Der öffentliche Link ist dann nicht mehr nutzbar (Meldung, dass die Freigabe abgelaufen oder gelöscht wurde).
Wichtig: Unbeschränkte Freigaben (ohne Ablaufdatum) funktionieren auf derselben Instanz problemlos und bleiben dauerhaft bestehen.nc_not_working.md
Auf meiner zweiten Instanz (gleiche Nextcloud-Version, gleiche PHP-Version, ähnlicher Docker-Setup, aber MySQL als Datenbank) tritt dieses Verhalten nicht auf – zeitlich begrenzte Links funktionieren dort wie erwartet.nc_working.md
Umgebung – betroffene Instanz (PostgreSQL)
Auszug aus System Report (stark gekürzt, Secrets entfernt):
-
Nextcloud-Version: 34.0.2 – 34.0.2.1
-
Datenbank: pgsql PostgreSQL 17.10
-
User-Backends:
OC\User\Database -
Cron-Modus: cron
-
Sharing-Konfiguration (Privacy): alle
shareapi_*-Keys stehen auf „not set“, also kein konfiguriertes Standard-Ablaufdatum und keine Einschränkungen über diese Keys.nc_not_working.md
Relevante Punkte aus config.php:
-
dbtype=pgsql -
memcache.local=\OC\Memcache\APCu -
memcache.distributed/memcache.locking=\OC\Memcache\Redis -
overwritehost,overwriteprotocol,trusted_proxies,trusted_domainssind gesetzt -
keine speziellen share-bezogenen Einstellungen (z. B. keine
shareapi_default_expire_date,shareapi_enforce_expire_date,shareapi_expire_after_n_days).nc_not_working.md
Den vollständigen System Report dieser Instanz kann ich bei Bedarf als Datei anhängen.
Umgebung – funktionierende Instanz (MySQL)
Auszug aus System Report der funktionierenden Instanz:
-
Nextcloud-Version: 34.0.2 – 34.0.2.1
-
Datenbank: mysql 10.11.18
-
User-Backends:
OCA\UserOIDC\User\Backend,OC\User\Database -
Sharing-Konfiguration (Privacy): dieselben
shareapi_*-Keys, alle auf „not set“.nc_working.md
Relevante Punkte aus config.php:
-
dbtype=mysql -
mysql.utf8mb4= true -
sonst sehr ähnliche Web/App-Konfiguration (Redis-Cache,
trusted_proxies,overwritehost,overwriteprotocoletc.).nc_working.md
Auf dieser MySQL-Instanz funktionieren zeitlich begrenzte öffentliche Links wie erwartet: sie laufen nicht unmittelbar nach dem Erstellen ab, sondern erst zum konfigurierten Ablaufdatum.
Logs
-
Im
nextcloud.logder PostgreSQL-Instanz sehe ich keine auffälligen Fehlermeldungen (Errors/Exceptions) direkt beim Erstellen oder Ablauf des Links. -
Falls nötig, kann ich gezielte Log-Ausschnitte für den Zeitraum der Tests nachreichen.
Zusammenfassung / Vermutung
-
Der Fehler ist reproduzierbar auf einer Docker-Instanz mit Nextcloud 34.0.2.1 und PostgreSQL 17.10.
-
Er tritt nicht auf einer sehr ähnlichen Docker-Instanz mit MySQL 10.11.18.
-
Die Sharing-Konfiguration (
shareapi_*) ist auf beiden Instanzen identisch (kein Standard-Ablaufdatum über diese Keys). -
Die Symptome deuten auf einen Bug in der Ablaufdatums‑Behandlung für öffentliche Links auf PostgreSQL‑Backends hin (Ablaufdatum wird so interpretiert, dass der Link praktisch sofort nach Erstellung als abgelaufen gilt).github
Ich freue mich über Hinweise, ob das ein bereits bekannter Fehler ist, und teste bei Bedarf gerne Nightly/RC-Builds oder stelle weitere Details zur Verfügung.