Issue upgrading to 24

Support intro

Sorry to hear you’re facing problems :slightly_frowning_face: is for home/non-enterprise users. If you’re running a business, paid support can be accessed via where we can ensure your business keeps running smoothly.

In order to help you as quickly as possible, before clicking Create Topic please provide as much of the below as you can. Feel free to use a pastebin service for logs, otherwise either indent short log examples with four spaces:


Or for longer, use three backticks above and below the code snippet:


Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can :heart:

Nextcloud version (eg, 20.0.5): Nextcloud will be updated to version 23.0.5
Operating system and version (eg, Ubuntu 20.04): Ubuntu 20.04.4 LTS
Apache or nginx version (eg, Apache 2.4.25): nginx version: nginx/1.21.6
PHP version (eg, 7.4): 7.4 to 8.0 available

The issue you are facing: first tried to upgrade from 22 to 24, now having an issue just trying to upgrade from 22 to 23.

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

Steps to replicate it:

  1. Try to manually upgrade from 22 to 24
  2. Put files for 23 over the 24 ones
  3. run php occ upgrade

The output of your Nextcloud log in Admin > Logging:
Not currently available

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

$CONFIG = array (
  'passwordsalt' => '3LMpHvfw5DiT5Ac4RQGb6YQuBzkA4T',
  'secret' => '+o8bR09sXi4nvgw7aPfXJUqRXtHdPbnGShFj3Ko8b0gDuREt',
  'trusted_domains' => 
  array (
    0 => 'localhost',
    2 => 'cloud.url ',
  'datadirectory' => data directory ',
  'dbtype' => 'mysql',
  'version' => '',
  'overwrite.cli.url' => 'http://localhost',
  'dbname' => 'db name',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'db user',
  'dbpassword' => 'db password',
  'installed' => true,
  'instanceid' => 'ocj422nc27ej',
  'default_phone_region' => 'ISO 3166-2:US',
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 0,
  'updater.secret' => '$2y$10$YSfMZZORxdN7UT0stvWORO6DuvZGlSFUEEQC4PEP.fl8WGLyyM2wy',

The output of your Apache/nginx/system log in /var/log/____:

nothing for the subdomain 


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.

[Sun May 15 09:51:39.827424 2022] [proxy_fcgi:error] [pid 693234:tid 140517220275968] (70007)The timeout specified has expired: [client] AH01075: Error dispatching request to : (polling)
[Mon May 16 16:41:37.440799 2022] [proxy_fcgi:error] [pid 1552411:tid 140517471926016] [client] AH01071: Got error 'Primary script unknown', referer:
[Wed May 18 12:08:07.363709 2022] [proxy_fcgi:error] [pid 3280992:tid 140517656467200] [client] AH01071: Got error 'Primary script unknown', referer:
[Thu May 19 20:25:27.637374 2022] [proxy_fcgi:error] [pid 18575:tid 140517346100992] [client] AH01071: Got error 'PHP message: PHP Fatal error:  Declaration of OC\\L10N\\Factory::findLanguage(?string $appId = null): string must be compatible with OCP\\L10N\\IFactory::findLanguage($app = null) in /home/chris/web/ on line 174'

When I try to update via occ update I get:

Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Setting log level to debug
Turned on maintenance mode
Updating database schema
An unhandled exception has been thrown:
Error: Undefined class constant 'JSON' in /home/chris/web/
Stack trace:
#0 /home/chris/web/ OC\Core\Migrations\Version24000Date20220404230027->changeSchema(Object(OC\Migration\SimpleOutput), Object(Closure), Array)
#1 /home/chris/web/ OC\DB\MigrationService->executeStep('24000Date202204...', false)
#2 /home/chris/web/ OC\DB\MigrationService->migrate()
#3 /home/chris/web/ OC\Updater->doCoreUpgrade()
#4 /home/chris/web/ OC\Updater->doUpgrade('', '')
#5 /home/chris/web/ OC\Updater->upgrade()
#6 /home/chris/web/ OC\Core\Command\Upgrade->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /home/chris/web/ Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 /home/chris/web/ Symfony\Component\Console\Application->doRunCommand(Object(OC\Core\Command\Upgrade), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 /home/chris/web/ Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /home/chris/web/ Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /home/chris/web/ OC\Console\Application->run()
#12 /home/chris/web/ require_once('/home/chris/web...')