SEE EDITS BELOW
Nextcloud version: 30.0.0.14
Operating system and version: Rocky Linux 9.4
Apache version: Apache 2.4.57
PHP version: 8.3.9
The issue you are facing:
I performed a clean upgrade via the CLI from NC29.0.7 to NC30, replaced all files and reinstalled all ext apps from scratch. The upgrade didn’t report any issues, server is running, but none of the apps are appearing in the web consoles menu bar anymore, the only apps there are Dashboard, Files, Photos, Activities.
What’s more confusing is that they are also missing from occ app:list
, but when I run occ app:install calendar
for instance, it says calendar already installed
. Ok, so I try occ app:enable calendar
and that gets calendar already enabled
.
In my syslog
I’m seeing a number of errors like this one…
Sep 26 11:59:08 ########## Nextcloud[109346]: {"reqId":"QTR9qPsU3j3H8vDZD88A","level":3,"time":"2024-09-26T15:59:08+00:00","remoteAddr":"##########
","user":"admin","app":"no app in context","method":"PROPFIND","url":"/remote.php/dav/files/admin/","message":"{\"Exception\":\"OC\\\\AppFramework\\\\Utility\\\\QueryNotFoundx
Exception\",\"Message\":\"Could not resolve OCA\\\\Talk\\\\Share\\\\RoomShareProvider! Class \\\"OCA\\\\Talk\\\\Share\\\\RoomShareProvider\\\" does not exist\",\"Code\":0,\"Tx
race\":[{\"file\":\"/srv/apps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php\",\"line\":124,\"function\":\"resolve\",\"class\":\"OC\\\\AppFramework\\\\Utilityx
\\\\SimpleContainer\",\"type\":\"->\",\"args\":[\"OCA\\\\Talk\\\\Share\\\\RoomShareProvider\"]},{\"file\":\"/srv/apps/nextcloud/lib/private/ServerContainer.php\",\"line\":155x
,\"function\":\"query\",\"class\":\"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer\",\"type\":\"->\",\"args\":[\"OCA\\\\Talk\\\\Share\\\\RoomShareProvider\",true]},{\"file\x
":\"/srv/apps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php\",\"line\":42,\"function\":\"query\",\"class\":\"OC\\\\ServerContainer\",\"type\":\"->\",\"args\"x
:[\"OCA\\\\Talk\\\\Share\\\\RoomShareProvider\"]},{\"file\":\"/srv/apps/nextcloud/lib/private/Share20/ProviderFactory.php\",\"line\":248,\"function\":\"get\",\"class\":\"OC\\x
\\AppFramework\\\\Utility\\\\SimpleContainer\",\"type\":\"->\",\"args\":[\"OCA\\\\Talk\\\\Share\\\\RoomShareProvider\"]},{\"file\":\"/srv/apps/nextcloud/lib/private/Share20/Px
roviderFactory.php\",\"line\":324,\"function\":\"getRoomShareProvider\",\"class\":\"OC\\\\Share20\\\\ProviderFactory\",\"type\":\"->\",\"args\":[]},{\"file\":\"/srv/apps/nextx
cloud/lib/private/Share20/Manager.php\",\"line\":1199,\"function\":\"getProviderForType\",\"class\":\"OC\\\\Share20\\\\ProviderFactory\",\"type\":\"->\",\"args\":[10]},{\"filx
e\":\"/srv/apps/nextcloud/apps/files_sharing/lib/MountProvider.php\",\"line\":48,\"function\":\"getSharedWith\",\"class\":\"OC\\\\Share20\\\\Manager\",\"type\":\"->\",\"args\x
":[\"admin\",10,null,-1]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/Config/MountProviderCollection.php\",\"line\":72,\"function\":\"getMountsForUser\",\"class\":\"OCAx
\\\\Files_Sharing\\\\MountProvider\",\"type\":\"->\",\"args\":[[\"OC\\\\User\\\\User\"],[\"OC\\\\Files\\\\Storage\\\\StorageFactory\"]]},{\"file\":\"/srv/apps/nextcloud/lib/px
rivate/Files/Config/MountProviderCollection.php\",\"line\":129,\"function\":\"getMountsFromProvider\",\"class\":\"OC\\\\Files\\\\Config\\\\MountProviderCollection\",\"type\":x
\"->\",\"args\":[[\"OCA\\\\Files_Sharing\\\\MountProvider\"],[\"OC\\\\User\\\\User\"],[\"OC\\\\Files\\\\Storage\\\\StorageFactory\"]]},{\"file\":\"/srv/apps/nextcloud/lib/prix
vate/Files/SetupManager.php\",\"line\":203,\"function\":\"addMountForUser\",\"class\":\"OC\\\\Files\\\\Config\\\\MountProviderCollection\",\"type\":\"->\",\"args\":[[\"OC\\\\x
User\\\\User\"],[\"OC\\\\Files\\\\Mount\\\\Manager\"],[\"Closure\"]]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/SetupManager.php\",\"line\":306,\"function\":\"OC\\\\Fx
iles\\\\{closure}\",\"class\":\"OC\\\\Files\\\\SetupManager\",\"type\":\"->\",\"args\":[\"*** sensitive parameters replaced ***\"]},{\"file\":\"/srv/apps/nextcloud/lib/privatx
e/Files/SetupManager.php\",\"line\":202,\"function\":\"setupForUserWith\",\"class\":\"OC\\\\Files\\\\SetupManager\",\"type\":\"->\",\"args\":[[\"OC\\\\User\\\\User\"],[\"Closx
ure\"]]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/SetupManager.php\",\"line\":386,\"function\":\"setupForUser\",\"class\":\"OC\\\\Files\\\\SetupManager\",\"type\":\"x
->\",\"args\":[[\"OC\\\\User\\\\User\"]]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/Mount/Manager.php\",\"line\":117,\"function\":\"setupForPath\",\"class\":\"OC\\\\Fx
iles\\\\SetupManager\",\"type\":\"->\",\"args\":[\"/admin/files\",true]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/View.php\",\"line\":1393,\"function\":\"findIn\",\"x
class\":\"OC\\\\Files\\\\Mount\\\\Manager\",\"type\":\"->\",\"args\":[\"/admin/files\"]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/Node/Node.php\",\"line\":94,\"functx
ion\":\"addSubMounts\",\"class\":\"OC\\\\Files\\\\View\",\"type\":\"->\",\"args\":[[\"OC\\\\Files\\\\FileInfo\"]]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/Node/Nodex
.php\",\"line\":221,\"function\":\"getFileInfo\",\"class\":\"OC\\\\Files\\\\Node\\\\Node\",\"type\":\"->\",\"args\":[]},{\"function\":\"getEtag\",\"class\":\"OC\\\\Files\\\\Nx
ode\\\\Node\",\"type\":\"->\",\"args\":[]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/Node/LazyFolder.php\",\"line\":64,\"function\":\"call_user_func_array\",\"args\":x
[[[\"OC\\\\Files\\\\Node\\\\Folder\"],\"getEtag\"],[]]},{\"file\":\"/srv/apps/nextcloud/lib/private/Files/Node/LazyFolder.php\",\"line\":240,\"function\":\"__call\",\"class\"x
:\"OC\\\\Files\\\\Node\\\\LazyFolder\",\"type\":\"->\",\"args\":[\"getEtag\",[]]},{\"file\":\"/srv/apps/nextcloud/apps/dav/lib/Connector/Sabre/Node.php\",\"line\":182,\"functx
ion\":\"getEtag\",\"class\":\"OC\\\\Files\\\\Node\\\\LazyFolder\",\"type\":\"->\",\"args\":[]},{\"file\":\"/srv/apps/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php\",x
\"line\":337,\"function\":\"getETag\",\"class\":\"OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Node\",\"type\":\"->\",\"args\":[]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dav/lx
ib/DAV/PropFind.php\",\"line\":95,\"function\":\"OCA\\\\DAV\\\\Connector\\\\Sabre\\\\{closure}\",\"class\":\"OCA\\\\DAV\\\\Connector\\\\Sabre\\\\FilesPlugin\",\"type\":\"->\"x
,\"args\":[\"*** sensitive parameters replaced ***\"]},{\"file\":\"/srv/apps/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php\",\"line\":336,\"function\":\"handle\",\"cx
lass\":\"Sabre\\\\DAV\\\\PropFind\",\"type\":\"->\",\"args\":[\"{DAV:}getetag\",[\"Closure\"]]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.x
php\",\"line\":89,\"function\":\"handleGetProperties\",\"class\":\"OCA\\\\DAV\\\\Connector\\\\Sabre\\\\FilesPlugin\",\"type\":\"->\",\"args\":[[\"Sabre\\\\DAV\\\\PropFind\"],x
[\"OCA\\\\DAV\\\\Files\\\\FilesHome\"]]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php\",\"line\":1052,\"function\":\"emit\",\"class\":\"Sabre\\\\DAV\x
\\\Server\",\"type\":\"->\",\"args\":[\"propFind\",[[\"Sabre\\\\DAV\\\\PropFind\"],[\"OCA\\\\DAV\\\\Files\\\\FilesHome\"]]]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dax
v/lib/DAV/Server.php\",\"line\":984,\"function\":\"getPropertiesByNode\",\"class\":\"Sabre\\\\DAV\\\\Server\",\"type\":\"->\",\"args\":[[\"Sabre\\\\DAV\\\\PropFind\"],[\"OCA\x
\\\DAV\\\\Files\\\\FilesHome\"]]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php\",\"line\":1662,\"function\":\"getPropertiesIteratorForPath\",\"class\x
":\"Sabre\\\\DAV\\\\Server\",\"type\":\"->\",\"args\":[\"files/admin\",[\"{DAV:}getcontentlength\",\"{DAV:}getcontenttype\",\"{DAV:}getetag\",\"{DAV:}getlastmodified\",\"{DAVx
:}creationdate\",\"And 25 more entries, set log level to debug to see all entries\"],1]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php\",\"line\":1647x
,\"function\":\"writeMultiStatus\",\"class\":\"Sabre\\\\DAV\\\\Server\",\"type\":\"->\",\"args\":[[\"Sabre\\\\Xml\\\\Writer\",[],\"/remote.php/dav/\",[\"d\",\"s\",\"oc\",\"ncx
\"],[]],[\"Generator\"],false]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php\",\"line\":346,\"function\":\"generateMultiStatus\",\"class\":\"Sabrx
e\\\\DAV\\\\Server\",\"type\":\"->\",\"args\":[[\"Generator\"],false]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php\",\"line\":89,\"functx
ion\":\"httpPropFind\",\"class\":\"Sabre\\\\DAV\\\\CorePlugin\",\"type\":\"->\",\"args\":[[\"Sabre\\\\HTTP\\\\Request\"],[\"Sabre\\\\HTTP\\\\Response\"]]},{\"file\":\"/srv/apx
ps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php\",\"line\":472,\"function\":\"emit\",\"class\":\"Sabre\\\\DAV\\\\Server\",\"type\":\"->\",\"args\":[\"method:PROPFIND\",[[\x
"Sabre\\\\HTTP\\\\Request\"],[\"Sabre\\\\HTTP\\\\Response\"]]]},{\"file\":\"/srv/apps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php\",\"line\":253,\"function\" x
… which only barely references Talk
which is one of the missing apps.
Here is the output of occ app:list
…
Enabled:
- activity: 3.0.0
- bruteforcesettings: 3.0.0
- circles: 30.0.0-dev
- cloud_federation_api: 1.13.0
- comments: 1.20.1
- contactsinteraction: 1.11.0
- dashboard: 7.10.0
- dav: 1.31.1
- federatedfilesharing: 1.20.0
- federation: 1.20.0
- files: 2.2.0
- files_external: 1.22.0
- files_pdfviewer: 3.0.0
- files_reminders: 1.3.0
- files_sharing: 1.22.0
- files_trashbin: 1.20.1
- files_versions: 1.23.0
- logreader: 3.0.0
- lookup_server_connector: 1.18.0
- nextcloud_announcements: 2.0.0
- notifications: 3.0.0
- oauth2: 1.18.1
- password_policy: 2.0.0
- photos: 3.0.2
- privacy: 2.0.0
- provisioning_api: 1.20.0
- recommendations: 3.0.0
- related_resources: 1.5.0
- serverinfo: 2.0.0
- settings: 1.13.0
- sharebymail: 1.20.0
- support: 2.0.0
- survey_client: 2.0.0
- systemtags: 1.20.0
- text: 4.1.0
- theming: 2.5.0
- twofactor_backupcodes: 1.19.0
- twofactor_totp: 12.0.0-dev
- updatenotification: 1.20.0
- user_status: 1.10.0
- viewer: 3.0.0
- weather_status: 1.10.0
- webhook_listeners: 1.1.0-dev
- workflowengine: 2.12.0
Disabled:
- admin_audit: 1.20.0
- encryption: 2.18.0
- files_downloadlimit: 3.0.0 (installed 2.0.0)
- firstrunwizard: 3.0.0 (installed 2.14.0)
- suspicious_login: 8.0.0
- twofactor_nextcloud_notification: 4.0.0
- user_ldap: 1.21.0
The ones that report as installed when I run occ app:install _____
but which are not listed above are…
- announcementcenter
- calendar
- contacts
- cookbook
- deck
- fulltextsearch
- files_fulltextsearch
- fileslibreofficeedit
- keeweb
- memories
- metadata
- phonetrack
- previewgenerator
- richdocuments
- richdocumentscode
- spreed
- tasks
- timemanager
My config.php
is as follows…
<?php
$CONFIG = array (
'passwordsalt' => '##########',
'secret' => '##########',
'trusted_domains' =>
array (
0 => 'localhost',
1 => '##########',
),
'datadirectory' => '##########/nextcloud',
'dbtype' => 'mysql',
'version' => '30.0.0.14',
'overwrite.cli.url' => 'http://localhost',
'dbname' => '##########',
'dbhost' => 'localhost:/run/mysqld/mysqld.sock',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => '##########',
'dbpassword' => '##########',
'installed' => true,
'instanceid' => '##########',
'log_type' => 'syslog',
'logfile' => '',
'loglevel' => '3',
'redis' =>
array (
'host' => '/run/redis/redis.sock',
'port' => '0',
'dbindex' => '3',
'timeout' => '0.0',
),
'filelocking.enabled' => true,
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'cache_path' => '##########/nextcloud',
'apps_paths' =>
array (
0 =>
array (
'path' => '##########/nextcloud/apps',
'url' => '/apps',
'writable' => false,
),
1 =>
array (
'path' => '##########/nextcloud/ext_apps',
'url' => '/ext_apps',
'writable' => true,
),
),
'upgrade.disable-web' => true,
'default_phone_region' => 'CA',
'blacklisted_files' =>
array (
),
'mail_smtpmode' => 'smtp',
'mail_smtphost' => '127.0.0.1',
'mail_smtpport' => 25,
'mail_smtpauth' => true,
'mail_smtpauthtype' => 'LOGIN',
'mail_smtpname' => '##########',
'mail_smtppassword' => '##########',
'appstoreenabled' => 'false',
'maintenance' => false,
'memories.exiftool_no_local' => true,
'memories.vod.path' => '##########/nextcloud/ext_apps/memories/bin-ext/go-vod-amd64',
'memories.vod.ffmpeg' => '/bin/ffmpeg',
'memories.vod.ffprobe' => '/bin/ffprobe',
'memories.db.triggers.fcu' => true,
'defaultapp' => 'apporder',
'mail_from_address' => '##########',
'mail_sendmailmode' => 'smtp',
'mail_domain' => '##########',
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\BMP',
1 => 'OC\\Preview\\Font',
2 => 'OC\\Preview\\GIF',
3 => 'OC\\Preview\\Illustrator',
4 => 'OC\\Preview\\JPEG',
5 => 'OC\\Preview\\MarkDown',
6 => 'OC\\Preview\\Movie',
7 => 'OC\\Preview\\MP3',
8 => 'OC\\Preview\\MP4',
9 => 'OC\\Preview\\MSOffice2003',
10 => 'OC\\Preview\\MSOffice2007',
11 => 'OC\\Preview\\MSOfficeDoc',
12 => 'OC\\Preview\\PDF',
13 => 'OC\\Preview\\Photoshop',
14 => 'OC\\Preview\\PNG',
15 => 'OC\\Preview\\SVG',
16 => 'OC\\Preview\\TIFF',
17 => 'OC\\Preview\\TXT',
18 => 'OC\\Preview\\XBitmap',
),
'preview_libreoffice_path' => '/bin/libreoffice',
'preview_ffmpeg_path' => '/bin/ffmpeg',
);
NB: The NC root, data, and cache directories are in different paths, which isn’t obvious above.
No idea where to start with this. Any help would be appreciated!
EDIT: If I run the integrity check against calendar I get an error…
... occ integrity:check-app calendar
- EXCEPTION:
- class: Exception
- message: App not found
So one part of occ things calendar is installed, and another part doesn’t.
EDIT 2 - PROBLEM FOUND: During my upgrade process, in order to avoid stale files, I delete the NC root (which is recommended), and start with fresh files, including my ext_apps
directory which is where the extra apps get installed.
With previous versions I was able to just re-install the apps using occ app:install _______
and it would work perfectly fine. Now it seems NC is reporting that the App is already installed despite the files not being there anymore, and so you can’t re-install it, and thus the files are never re-created.
This is why the apps aren’t working. But how are we supposed to now force the app to re-install the fresh files when NC thinks it’s already installed?
I just tried occ app:update calendar
and it responds calendar not installed
, but then if I try occ app:install calendar
it responds calendar already installed
.
EDIT 3: I’ve created a bug report at GITHub here: [Bug]: app:install reports app as already installed when files have been deleted, while app:update reports not installed · Issue #48413 · nextcloud/server · GitHub