Bookmarks not working after upgrade to 28.0.0?

Latest Official Nextcloud Docker Image

Nextcloud version (eg, 20.0.5): 28.0.0
Operating system and version (eg, Ubuntu 20.04): Docker on Ubuntu 22.04LTS
Apache or nginx version (eg, Apache 2.4.25): Apache/2.4.57 (Debian)
PHP version (eg, 7.4): 8.2.13

Database: Type: pgsql

Version: PostgreSQL 14.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit

The issue you are facing:

Bookmarks no longer accessible after upgrade

Is this the first time you’ve seen this error? (Y/N): Y

Steps to replicate it:

  1. Access bookmarks (/index.php/apps/bookmarks/) →

Internal Server Error

The server was unable to complete your request.

If this happens again, please send the technical details below to the server administrator.

More details can be found in the server log.

The output of your Nextcloud log in Admin > Logging:

[no app in context] Error: Could not boot bookmarks: Could not resolve symfonyAdapter! Class "symfonyAdapter" does not exist
	GET /index.php/apps/logreader/api/poll?lastReqId=U0875w4bysVyJc8CpuLG
	from XXX.XXX.XXX.XXX by USERNAME at 14 Dec 2023, 3:17:42 pm

Output errors in nextcloud.log in /var/www/ or as admin user in top right menu, filtering for errors. Use a pastebin service if necessary.

{
   "reqId":"bqkliEzZgm8R3itB0zmV",
   "level":3,
   "time":"2023-12-14T04:34:13+00:00",
   "remoteAddr":"61.245.150.110",
   "user":"USERNAME",
   "app":"no app in context",
   "method":"GET",
   "url":"/index.php/apps/files/",
   "message":"Could not boot bookmarks: Could not resolve symfonyAdapter! Class \"symfonyAdapter\" does not exist",
   "userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
   "version":"28.0.0.11",
   "exception":{
      "Exception":"OC\\AppFramework\\Utility\\QueryNotFoundException",
      "Message":"Could not resolve symfonyAdapter! Class \"symfonyAdapter\" does not exist",
      "Code":0,
      "Trace":[
         {
            "file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php",
            "line":146,
            "function":"resolve",
            "class":"OC\\AppFramework\\Utility\\SimpleContainer",
            "type":"->",
            "args":[
               "symfonyAdapter"
            ]
         },
         {
            "file":"/var/www/html/lib/private/ServerContainer.php",
            "line":173,
            "function":"query",
            "class":"OC\\AppFramework\\Utility\\SimpleContainer",
            "type":"->",
            "args":[
               "symfonyAdapter",
               true
            ]
         },
         {
            "file":"/var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php",
            "line":443,
            "function":"query",
            "class":"OC\\ServerContainer",
            "type":"->",
            "args":[
               "symfonyAdapter",
               true
            ]
         },
         {
            "file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php",
            "line":64,
            "function":"query",
            "class":"OC\\AppFramework\\DependencyInjection\\DIContainer",
            "type":"->",
            "args":[
               "symfonyAdapter"
            ]
         },
         {
            "file":"/var/www/html/lib/private/AppFramework/Bootstrap/FunctionInjector.php",
            "line":56,
            "function":"get",
            "class":"OC\\AppFramework\\Utility\\SimpleContainer",
            "type":"->",
            "args":[
               "symfonyAdapter"
            ]
         },
         {
            "function":"OC\\AppFramework\\Bootstrap\\{closure}",
            "class":"OC\\AppFramework\\Bootstrap\\FunctionInjector",
            "type":"->",
            "args":[
               "*** sensitive parameters replaced ***"
            ]
         },
         {
            "file":"/var/www/html/lib/private/AppFramework/Bootstrap/FunctionInjector.php",
            "line":45,
            "function":"array_map",
            "args":[
               [
                  "Closure"
               ],
               [
                  [
                     "ReflectionParameter",
                     "resourceManager"
                  ],
                  "*** sensitive parameters replaced ***"
               ]
            ]
         },
         {
            "file":"/var/www/html/lib/private/AppFramework/Bootstrap/BootContext.php",
            "line":50,
            "function":"injectFn",
            "class":"OC\\AppFramework\\Bootstrap\\FunctionInjector",
            "type":"->",
            "args":[
               [
                  "Closure"
               ]
            ]
         },
         {
            "file":"/var/www/html/custom_apps/bookmarks/lib/AppInfo/Application.php",
            "line":104,
            "function":"injectFn",
            "class":"OC\\AppFramework\\Bootstrap\\BootContext",
            "type":"->",
            "args":[
               [
                  "Closure"
               ]
            ]
         },
         {
            "file":"/var/www/html/lib/private/AppFramework/Bootstrap/Coordinator.php",
            "line":200,
            "function":"boot",
            "class":"OCA\\Bookmarks\\AppInfo\\Application",
            "type":"->",
            "args":[
               [
                  "OC\\AppFramework\\Bootstrap\\BootContext"
               ]
            ]
         },
         {
            "file":"/var/www/html/lib/private/App/AppManager.php",
            "line":434,
            "function":"bootApp",
            "class":"OC\\AppFramework\\Bootstrap\\Coordinator",
            "type":"->",
            "args":[
               "bookmarks"
            ]
         },
         {
            "file":"/var/www/html/lib/private/App/AppManager.php",
            "line":213,
            "function":"loadApp",
            "class":"OC\\App\\AppManager",
            "type":"->",
            "args":[
               "bookmarks"
            ]
         },
         {
            "file":"/var/www/html/lib/private/legacy/OC_App.php",
            "line":125,
            "function":"loadApps",
            "class":"OC\\App\\AppManager",
            "type":"->",
            "args":[
               [
                  
               ]
            ]
         },
         {
            "file":"/var/www/html/lib/base.php",
            "line":1049,
            "function":"loadApps",
            "class":"OC_App",
            "type":"::",
            "args":[
               
            ]
         },
         {
            "file":"/var/www/html/index.php",
            "line":39,
            "function":"handleRequest",
            "class":"OC",
            "type":"::",
            "args":[
               
            ]
         }
      ],
      "File":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php",
      "Line":135,
      "message":"Could not boot bookmarks: Could not resolve symfonyAdapter! Class \"symfonyAdapter\" does not exist",
      "exception":{
         
      },
      "CustomMessage":"Could not boot bookmarks: Could not resolve symfonyAdapter! Class \"symfonyAdapter\" does not exist"
   }
}

Thanks for the info.

As a more recent user - is there a way to determine which modules are breaking before the upgrade?

I have a separate test instance on which I test new Nextcloud releases before updating my main instance. Also, I usually wait until the first point release before updating, and by that time the apps I use are usually compatible…

But I found the following post, maybe it is of any help: Check App compatibility before upgrade - #2 by wwe

1 Like

That is pretty sound advice. Thank you! Since there’s not much in there, I decided to do a quick upgrade while fixing some other stuff. The only annoying thing is I wanted to migrate bookmarks from an old database.

But generally, I would do something similar with staying a release behind…

1 Like

Yeah, marking the app as compatible before 28.0.0 was out was an oversight on my part. I’m sorry for that

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.