Lesezeichen/Bookmarks-App - umbenannte Ordner werden bei anderen Benutzern mit ursprünglichem Namen angezeigt und andere Unschönheiten

Hallo, ich habe mich mal an der Lesezeichen-App versucht. Da manche Lesezeichen für andere Benutzer interessant sind, habe ich einzelne Lesezeichen-Ordner mit denen oder mit einer Benutzergruppe geteilt. Das Teilen erscheint mir aber einigermaßen instabil:

  1. egal, ob ich Ordner mit einzelnen Benutzern oder einer Gruppe teile: scheinbar ist es Glückssache, ob anderen Benutzern tatsächlich alle Lesezeichen im Ordner angezeigt werden. Das Berechtigungskonzept versteh ich nicht…

  2. manche Unterordner geteilter Ordner werden anderen Benutzern zusätzlich(!) auch auf der obersten Ebene (also direkt unter Lesezeichen) angezeigt. Ein Muster, wann und warum das der Fall ist, erkenne ich nicht.

  3. und ganz schlimm :slight_smile: – wenn ich einen geteilten Ordner nachträglich umbenenne, wird der anderen Benutzern mit ursprünglichem Namen angezeigt, das könnte zu einiger Verwirrung führen; aber eine Linkliste ist halt nicht wirklich eine statische Sache, oder? Da muss man halt mal umbenennen und umsortieren…

Kennt sich jemand damit aus? Internet-Recherchen führen mich nur zu Fragen/Antworten zur Dateien-App und dass man halt Gruppenordner verwenden soll. Das mache ich auch, aber hier geht’s um die Lesezeichen-App.

Eine allgemeine Info, dass die Lesezeichen-App noch nicht so wirklich ausgereift ist und es nicht an mir liegt :wink: , ist auch schon hilfreich, dann spare ich mir wenigstens eine Menge Arbeit, wenn ich hier alle meine Links eintrage und hinterher auf die Nase falle.

Vielen Dank,

Sue

Systeminfos, soweit für mich ersichtlich:

  • Bei welchen Anbieter? SpaceNet
  • Was für ein Server? —
  • Auf welcher Hardware? —
  • Betriebssystem sowie Version ALLER beteiligten Systeme Linux 4.18.0-477.27.2.el8_8.x86_64 x86_64
  • Nextcloud Version: 32.0.6
  • PHP Version: ???
  • Welche Datenbank? MySql 8.0.32
  • Apache version, usw.
  • Läuft NC in Docker,Snap oder VM
  • Netzwerk Aufgliederung: zb. Router>Switch>PI>
  • Wurden vor kurzen Server Updates gemacht? Wenn ja von was?
  • Habt ihr die Logs angesehen von Nextcloud und von System?
  • Bei was für einer Aktion ist der Fehler aufgetreten?
ping

@marcelklehr kannst du hier helfen?

Hallo,

das hört sich nicht gut an. ich werde versuchen, das am Wochenende nachzustellen und melde mich dann. Danke für das Feedback schonmal!

1 Like

@marcelklehr herzlichen Dank - und frag mich gern was, wenn detaillierte Infos benötigt werden. Auch am Wochenende :wink:

@marcelklehr

bestätige @S_Schnitzer :check_mark:
und öffentlich (public) freigegebene bookmark ordner können nicht in Android browsern (3 Geräte getestet) geöffnet werden:

short log:

    "reqId": "9uCZ9rjeGm5GRHfxxxx..",
    "level": 3,
    "time": "2026-03-30T12:43:41+00:00",
    "remoteAddr": "84.60.74.xxx",
    "user": "--",
    "app": "index",
    "method": "GET",
    "url": "/index.php/apps/bookmarks/public/FAfuxxxx,
    "scriptName": "/index.php",
    "message": "OCA\\Bookmarks\\Controller\\TagsController::__construct(): Argument #3 ($userId) must be of type string, null given",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:149.0) Gecko/20100101 Firefox/149.0",
    "version": "32.0.6.1",
    "exception": {
        "Exception": "TypeError",
        "Message": "OCA\\Bookmarks\\Controller\\TagsController::__construct(): Argument #3 ($userId) must be of type string, null given",
        "Code": 0,

extended log:

{
    "reqId": "9uCZ5rjeGm4GRHfxxxx...",
    "level": 3,
    "time": "2026-03-30T12:43:41+00:00",
    "remoteAddr": "84.60.74.xxx",
    "user": "--",
    "app": "index",
    "method": "GET",
    "url": "/index.php/apps/bookmarks/public/FAfu67T",
    "scriptName": "/index.php",
    "message": "OCA\\Bookmarks\\Controller\\TagsController::__construct(): Argument #3 ($userId) must be of type string, null given",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:149.0) Gecko/20100101 Firefox/149.0",
    "version": "32.0.6.1",
    "exception": {
        "Exception": "TypeError",
        "Message": "OCA\\Bookmarks\\Controller\\TagsController::__construct(): Argument #3 ($userId) must be of type string, null given",
        "Code": 0,
        "Trace": [
            {
                "function": "__construct",
                "class": "OCA\\Bookmarks\\Controller\\TagsController",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 72,
                "function": "newInstanceArgs",
                "class": "ReflectionClass",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 122,
                "function": "buildClass",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 140,
                "function": "resolve",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/DependencyInjection/DIContainer.php",
                "line": 352,
                "function": "query",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/DependencyInjection/DIContainer.php",
                "line": 324,
                "function": "queryNoFallback",
                "class": "OC\\AppFramework\\DependencyInjection\\DIContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 90,
                "function": "query",
                "class": "OC\\AppFramework\\DependencyInjection\\DIContainer",
                "type": "->"
            },
            {
                "function": "OC\\AppFramework\\Utility\\{closure}",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->",
                "args": [
                    "*** sensitive parameters replaced ***"
                ]
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 77,
                "function": "array_map"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 72,
                "function": "buildClassConstructorParameters",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 122,
                "function": "buildClass",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 140,
                "function": "resolve",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/DependencyInjection/DIContainer.php",
                "line": 352,
                "function": "query",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/DependencyInjection/DIContainer.php",
                "line": 324,
                "function": "queryNoFallback",
                "class": "OC\\AppFramework\\DependencyInjection\\DIContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 90,
                "function": "query",
                "class": "OC\\AppFramework\\DependencyInjection\\DIContainer",
                "type": "->"
            },
            {
                "function": "OC\\AppFramework\\Utility\\{closure}",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->",
                "args": [
                    "*** sensitive parameters replaced ***"
                ]
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 77,
                "function": "array_map"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 72,
                "function": "buildClassConstructorParameters",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 122,
                "function": "buildClass",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/Utility/SimpleContainer.php",
                "line": 140,
                "function": "resolve",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/DependencyInjection/DIContainer.php",
                "line": 352,
                "function": "query",
                "class": "OC\\AppFramework\\Utility\\SimpleContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/DependencyInjection/DIContainer.php",
                "line": 324,
                "function": "queryNoFallback",
                "class": "OC\\AppFramework\\DependencyInjection\\DIContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/AppFramework/App.php",
                "line": 133,
                "function": "query",
                "class": "OC\\AppFramework\\DependencyInjection\\DIContainer",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/private/Route/Router.php",
                "line": 321,
                "function": "main",
                "class": "OC\\AppFramework\\App",
                "type": "::"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/lib/base.php",
                "line": 1091,
                "function": "match",
                "class": "OC\\Route\\Router",
                "type": "->"
            },
            {
                "file": "/snap/nextcloud/52696/htdocs/index.php",
                "line": 25,
                "function": "handleRequest",
                "class": "OC",
                "type": "::"
            }
        ],
        "File": "/var/snap/nextcloud/52696/nextcloud/extra-apps/bookmarks/lib/Controller/TagsController.php",
        "Line": 21,
        "message": "OCA\\Bookmarks\\Controller\\TagsController::__construct(): Argument #3 ($userId) must be of type string, null given",
        "exception": {},
        "CustomMessage": "OCA\\Bookmarks\\Controller\\TagsController::__construct(): Argument #3 ($userId) must be of type string, null given"
    }
}
1 Like

Confirmed and fixed. The next release will have the fix. Thank you for reporting.

1 Like

ganz schlimm :slight_smile: – wenn ich einen geteilten Ordner nachträglich umbenenne, wird der anderen Benutzern mit ursprünglichem Namen angezeigt

Ich kann verstehen, dass das nicht intuitiv ist, aber es ist tatsächlich erstmal im Sinne des Erfinders. Kann man aber ändern. Ich werde einen feature request aufmachen und das in der nächsten Zeit mal angehen.

\1. und \2. kann ich so erstmal nicht auf einer cleanen instanz reproduzieren. headscratch

Zum testen: Ich habe einen Ordner mit lesezeichen und sub-ordnern mit lesezeichen gefüllt und geshared. Beim Sharee kommt alles an und es werden keine Ordner zusätzlich auf der Obersten ebene angezeigt.

@S_Schnitzer / @scubamuc Seit wann benutzt ihr die App? Gibt es einen Zeitpunkt seit dem das so kaputt ist? – Es wird warscheinlich schwer werden genau herauszufinden, was zu diesem Verhalten geführt hat. Könntet ihr vielleicht mal ein bisschen mit der App auf einer neuen Instanz rumspielen und probieren die genauen Schritte herauszufinden, um das zu reproduzieren?

ich benutze die app seit ich die snap verwende. hat einwandfrei funktioniert bis ca. 32.0.6, dann fingen die public share issues an.

hat noch einwandfrei funktioniert bis

$ sudo snap install nextcloud --channel=32.0.6snap1 

procedure:

  • go to bookmarks in NC UI
  • navigate to bookmarks sub-folder
  • got to ...menu select share
  • copy share link

on Android device

  • gp to android browser
  • enter share link

see issue

Das public share Problem habe ich wie gesagt bereits behoben. Interessant wären jetzt noch Reproduction steps für Probleme 1 und 2 von @S_Schnitzer

1 Like

Hallo, ich nutze die App seit ca. 2 Wochen. Eine neue Instanz kann ich leider nicht einfach aufsetzen, da Nextcloud gehostet ist. Ich könnte bestenfalls die App deinstallieren und neu probieren. Müsste aber erst die bereits angelegten Lesezeichen sichern. Das kann ich grade alles nicht spontan machen (Osteressen)

Wäre eine Neuinstallation der App sinnvoll?

Hallo, nur damit ich genau verstehe, was der Stand ist:

meine Phänomene 1. (Benutzern, mit denen man teilt, wird ggf. nicht der gesamte Ordnerinhalt angezeigt) und 2. (manche Unterordner werden zusätzlich auf der obersten Ebene angezeigt) habe nur ich und sie sind nicht reproduzierbar.

Nummer 3. (Umbenennen von Ordnern hat keine Auswirkung auf andere Benutzer) wird mit dem nächsten Release gelöst sein

Ist das so richtig?

Ich bin etwas verwirrt, weil das Problem (als Ganzes) dennoch gelöst zu sein scheint. Bei mir funktioniert es aber immer noch nicht…

Soll ich die App deinstallieren und es neu versuchen?

Kein Problem :slight_smile:

nur damit ich genau verstehe, was der Stand ist

Deine Phänomene konnte ich nach deiner Beschreibung nicht reproduzieren. Das heißt aber nicht, dass nur du diese Probleme hast (vermutlich nicht) und es heißt auch nicht, dass man sie überhaupt nicht reproduzieren kann.

Von hier aus können wir zwei Lösungswege einschlagen:

  1. Wir versuchen der Sache weiter auf den Grund zu gehen und den Bug, der für die Phänomene verantwortlich ist, zu finden. Dafür wäre es gut, wenn jemand versucht, das Phänomen erneut zu produzieren und sich die Schritte merkt, die das Phänomen produzieren. (idealerweise wärst das du, weil es bei dir ja schonmal aufgetreten ist, oder @scubamuc, der scheinbar das gleiche Problem gehabt hat?)
  2. Wir können das Phänomen Phänomen sein lassen und stattdessen versuchen, dir wieder eine funktionierende App hinzustellen. Dafür wird neu-installieren nicht reichen. Du müsstest erstmal für alle user die mit der Bookmarks app hantiert haben die Lesezeichen exportieren und dann in der Datenbank die tabellen die mit oc_bookmarks anfangen alle TRUNCATEn (alle Inhalte löschen). Dann kannst du (ohne neu installation) von vorne anfangen.

Der Forum-Thread wurde zwischenzeitlich als Gelöst markiert, aber scheint jetzt wieder als ungelöst zu erscheinen. Ich habe das ganze auf jeden fall nicht als gelöst betrachtet, aber kann nicht immer in Echtzeit antworten :slight_smile:

Ich tue mich schwer, das zu reproduzieren - es tritt halt auf. Und nur manchmal. Ich hab nichts anderes gemacht als Ordner angelegt, gefüllt und geteilt. Manchmal geteilt und dann gefüllt. Das könnte ich jetzt nochmal probieren, lieber wäre mir aber, da von Anfang an nochmal sauber aufzusetzen.

dickes Danke für die ganze Mühe! :smiling_face:

Ich hoste die Nextcloud leider nicht selber. Hab mir mühsam admin-Status erkämpft…

Bookmarks exportieren ist kein Problem, mach ich eh regelmäßig und derzeit habe erstmal nur ich welche angelegt (und dann halt ggf. geteilt) - wir testen das noch, neu anfangen wäre einfach.

An die Datenbank komme ich ohne weiteres nicht dran. Ich könnte es erstmal mit Deinstallieren probieren und wenn es nicht klappt müsste ich beim Hoster anfragen.

Wann gibt es denn die nächste Version der Lesezeichen? Evtl. würde ich dann noch darauf warten, hab’s nicht super-eilig mit dem Thema

das war ich…entschuldigung. Ich hatte keine E-Mail-Benachrichtigungen erhalten, seit der Thread auf “gelöst” war. Vermutete das als Ursache :pleading_face:

An die Datenbank komme ich ohne weiteres nicht dran. Ich könnte es erstmal mit Deinstallieren probieren und wenn es nicht klappt müsste ich beim Hoster anfragen.

Deinstallieren wird nicht viel bringen, aber wenn du an die Datenbank nicht dran kommst, kannst du probieren 1. deine Lesezeichen zu exportieren und 2. Alle Ordner und Lesezeichen bei dir zu löschen 3. dann wieder importieren und die gesharten Ordner neu teilen. Das kommt nicht ganz an ein TRUNCATE ran, aber könnte schonmal helfen.