Internal Server Error after attemped update

Support intro

  • Nextcloud Server version (e.g., 29.x.x):
    • 33.0.4.1
  • Operating system and version (e.g., Ubuntu 24.04):
    • replace Ubuntu 24.04.4
  • Web server and version (e.g, Apache 2.4.25):
    • apache2 2.4.58
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • nginx 1.30.3
  • PHP version (e.g, 8.3):
    • 8.4.22
      
  • Is this the first time you’ve seen this error? (Yes / No):
    • yes
  • When did this problem seem to first start?
    • When I tried to up date
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Plesk installer
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

Following an attempted update, I get the following error message:

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.

Log entries

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

{"reqId":"aj7Xjs7MUZ0hnAkUAFAatwAAAEY","level":3,"time":"2026-06-26T19:48:30+00:00","remoteAddr":"1.*.*.*.9","user":"--","app":"index","method":"GET","url":"/","scriptName":"/index.php","message":"Class \"OCA\\Text\\Controller\\AiController\" does not exist","userAgent":"Mozilla/5.0 (compatible; monitoring360bot/1.1; +https://app.360monitoring.com/bot.html)","version":"33.0.4.1","exception":{"Exception":"ReflectionException","Message":"Class \"OCA\\Text\\Controller\\AiController\" does not exist","Code":-1,"Trace":[{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":496,"function":"__construct","class":"ReflectionClass","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":452,"function":"getAttributeRoutes","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":129,"function":"loadAttributeRoutes","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":411,"function":"loadRoutes","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/CachingRouter.php","line":56,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/URLGenerator.php","line":99,"function":"generate","class":"OC\\Route\\CachingRouter","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/apps/password_policy/lib/Capabilities.php","line":67,"function":"linkToOCSRouteAbsolute","class":"OC\\URLGenerator","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/CapabilitiesManager.php","line":61,"function":"getCapabilities","class":"OCA\\Password_Policy\\Capabilities","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/JSConfigHelper.php","line":142,"function":"getCapabilities","class":"OC\\CapabilitiesManager","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/TemplateLayout.php","line":243,"function":"getConfig","class":"OC\\Template\\JSConfigHelper","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Template.php","line":115,"function":"getPageTemplate","class":"OC\\TemplateLayout","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Base.php","line":96,"function":"fetchPage","class":"OC\\Template\\Template","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php","line":381,"function":"printPage","class":"OC\\Template\\Base","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php","line":1098,"function":"printUpgradePage","class":"OC","type":"::"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","Line":496,"message":"Class \"OCA\\Text\\Controller\\AiController\" does not exist","exception":"{\"class\":\"ReflectionException\",\"message\":\"Class \\\"OCA\\Text\\Controller\\AiController\\\" does not exist\",\"code\":-1,\"file\":\"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php:496\",\"trace\":\"#0 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(496): ReflectionClass->__construct()\\n#1 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(452): OC\\Route\\Router->getAttributeRoutes()\\n#2 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(129): OC\\Route\\Router->loadAttributeRoutes()\\n#3 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(411): OC\\Route\\Router->loadRoutes()\\n#4 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/CachingRouter.php(56): OC\\Route\\Router->generate()\\n#5 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/URLGenerator.php(99): OC\\Route\\CachingRouter->generate()\\n#6 /var/www/vhosts/domain.com/nextcloud.domain.com/apps/password_policy/lib/Capabilities.php(67): OC\\URLGenerator->linkToOCSRouteAbsolute()\\n#7 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/CapabilitiesManager.php(61): OCA\\Password_Policy\\Capabilities->getCapabilities()\\n#8 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/JSConfigHelper.php(142): OC\\CapabilitiesManager->getCapabilities()\\n#9 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/TemplateLayout.php(243): OC\\Template\\JSConfigHelper->getConfig()\\n#10 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Template.php(115): OC\\TemplateLayout->getPageTemplate()\\n#11 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Base.php(96): OC\\Template\\Template->fetchPage()\\n#12 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php(381): OC\\Template\\Base->printPage()\\n#13 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php(1098): OC::printUpgradePage()\\n#14 /var/www/vhosts/domain.com/nextcloud.domain.com/index.php(25): OC::handleRequest()\\n#15 {main}\"}","CustomMessage":"Class \"OCA\\Text\\Controller\\AiController\" does not exist"}}
{"reqId":"ECRlsrhgRk4sT3dcQKsg","level":3,"time":"2026-06-26T19:48:36+00:00","remoteAddr":"88.97.23.154","user":"--","app":"index","method":"GET","url":"/index.php/apps/dashboard/","scriptName":"/index.php","message":"Class \"OCA\\Text\\Controller\\AiController\" does not exist","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0","version":"33.0.4.1","exception":{"Exception":"ReflectionException","Message":"Class \"OCA\\Text\\Controller\\AiController\" does not exist","Code":-1,"Trace":[{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":496,"function":"__construct","class":"ReflectionClass","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":452,"function":"getAttributeRoutes","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":129,"function":"loadAttributeRoutes","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","line":411,"function":"loadRoutes","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/CachingRouter.php","line":56,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/URLGenerator.php","line":99,"function":"generate","class":"OC\\Route\\CachingRouter","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/apps/password_policy/lib/Capabilities.php","line":67,"function":"linkToOCSRouteAbsolute","class":"OC\\URLGenerator","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/CapabilitiesManager.php","line":61,"function":"getCapabilities","class":"OCA\\Password_Policy\\Capabilities","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/JSConfigHelper.php","line":142,"function":"getCapabilities","class":"OC\\CapabilitiesManager","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/TemplateLayout.php","line":243,"function":"getConfig","class":"OC\\Template\\JSConfigHelper","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Template.php","line":115,"function":"getPageTemplate","class":"OC\\TemplateLayout","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Base.php","line":96,"function":"fetchPage","class":"OC\\Template\\Template","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php","line":381,"function":"printPage","class":"OC\\Template\\Base","type":"->"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php","line":1098,"function":"printUpgradePage","class":"OC","type":"::"},{"file":"/var/www/vhosts/domain.com/nextcloud.domain.com/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php","Line":496,"message":"Class \"OCA\\Text\\Controller\\AiController\" does not exist","exception":"{\"class\":\"ReflectionException\",\"message\":\"Class \\\"OCA\\Text\\Controller\\AiController\\\" does not exist\",\"code\":-1,\"file\":\"/var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php:496\",\"trace\":\"#0 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(496): ReflectionClass->__construct()\\n#1 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(452): OC\\Route\\Router->getAttributeRoutes()\\n#2 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(129): OC\\Route\\Router->loadAttributeRoutes()\\n#3 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/Router.php(411): OC\\Route\\Router->loadRoutes()\\n#4 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Route/CachingRouter.php(56): OC\\Route\\Router->generate()\\n#5 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/URLGenerator.php(99): OC\\Route\\CachingRouter->generate()\\n#6 /var/www/vhosts/domain.com/nextcloud.domain.com/apps/password_policy/lib/Capabilities.php(67): OC\\URLGenerator->linkToOCSRouteAbsolute()\\n#7 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/CapabilitiesManager.php(61): OCA\\Password_Policy\\Capabilities->getCapabilities()\\n#8 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/JSConfigHelper.php(142): OC\\CapabilitiesManager->getCapabilities()\\n#9 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/TemplateLayout.php(243): OC\\Template\\JSConfigHelper->getConfig()\\n#10 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Template.php(115): OC\\TemplateLayout->getPageTemplate()\\n#11 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/private/Template/Base.php(96): OC\\Template\\Template->fetchPage()\\n#12 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php(381): OC\\Template\\Base->printPage()\\n#13 /var/www/vhosts/domain.com/nextcloud.domain.com/lib/base.php(1098): OC::printUpgradePage()\\n#14 /var/www/vhosts/domain.com/nextcloud.domain.com/index.php(25): OC::handleRequest()\\n#15 {main}\"}","CustomMessage":"Class \"OCA\\Text\\Controller\\AiController\" does not exist"}}

Upgrade how precisely?

And to what version?

We need more details to help you.

Update to 33.0.6.2 using the built in updater

Does the error message mean anything to anyone? Is this fixable? Or should I just scrap the current instance and start again from scratch (which is the usual solution with Nextcloud).

is that your usual solution?

what is the Plesk solution?
have you tried Plesk support?

https://support.plesk.com/

This is a Nextcloud error, so I am asking in the Nextcloud support forum.

Having used Nextcloud I have used a verity of ways to install and maintain Nextcloud for many years, the current instance has been stable for over two years.If I can’t fix it, then yes, I will have to scrap it and start again, which is far from ideal, but that seems to be the way with Nextcloud, it breaks and sometimes there is no help to fix it.

This is generated by the webserver.
So please check nginx log.

No, installations are fixable.

Looks like your updater did not finish.

See steps for manual upgrade.

I do not know this software.

The AiController class does not exist in the text app until v34 so I’m currently unsure how your environment ended up in this state.

Can you post some of the other items requested in the support template, like your config, apps,etc.

Config here:

<?php
$CONFIG = array (
  'serverid' => 1,
  'passwordsalt' => '******',
  'secret' => '********',
  'trusted_domains' => 
  array (
    0 => 'localhost',
    1 => 'nextcloud.domain.com',
  ),
  'datadirectory' => '/var/www/vhosts/domain.com/.nextcloud/data/*******',
  'dbtype' => 'mysql',
  'version' => '33.0.4.1',
  'overwrite.cli.url' => 'http://localhost',
  'dbname' => 'nextcloud_*******',
  'dbhost' => 'localhost:3306',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'ncuser_******',
  'dbpassword' => '*********',
  'installed' => true,
  'instanceid' => '*******',
  'default_phone_region' => 'GB',
  'maintenance_window_start' => 1,
  'app_install_overwrite' => 
  array (
    3 => 'maps',
    4 => 'carnet',
    5 => 'occweb',
    6 => 'backup',
    7 => 'news',
    8 => 'memories',
  ),
  'maintenance' => false,
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_from_address' => 'me',
  'mail_domain' => 'domain.com',
  'mail_smtphost' => 'smtp.****',
  'mail_smtpport' => '465',
  'mail_smtpauth' => 1,
  'mail_smtpname' => 'me@domain.com',
  'mail_smtppassword' => '********',
  'mail_smtpsecure' => 'ssl',
  'has_rebuilt_cache' => true,
  'theme' => '',
  'loglevel' => 3,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'twofactor_enforced' => 'true',
  'twofactor_enforced_groups' => '****',
  array (
    0 => 'admin',
  ),
  'twofactor_enforced_excluded_groups' => 
  array (
  ),
  'memories.db.triggers.fcu' => true,
  'memories.exiftool' => '/var/www/vhosts/domain.com/nextcloud.domain.com/apps/memories/bin-ext/exiftool-amd64-glibc',
  'memories.vod.path' => '/var/www/vhosts/domain.com/nextcloud.domain.com/apps/memories/bin-ext/go-vod-amd64',
  'config_preset' => 1,
  'enabledPreviewProviders' => 
  array (
    0 => 'OC\\Preview\\Image',
    1 => 'OC\\Preview\\HEIC',
    2 => 'OC\\Preview\\TIFF',
    3 => 'OC\\Preview\\Movie',
  ),
  'memories.exiftool_no_local' => true,
);

This is what I used to install Nextcloud Nextcloud extension - Plesk

Unfortunately we have zero visibility into the Plesk extension for Nextcloud. You may want to try posting on their forum.

From the looks of it, it likely tried to upgrade you to v34 but in the process only partially updated the code and then prevented the Nextcloud final upgrade phase from running to finish up the DB migrations and app upgrades.

As advised, I contacted Plesk support for help and got the reply “At this stage, the remaining 500 Internal Server Error appears to be coming from the Nextcloud application itself, not from Plesk SSL, IP binding, nginx, or PHP-FPM routing. Since Nextcloud is a third-party application maintained by its own vendor/developer, I recommend contacting Nextcloud support or the application administrator to continue with the database upgrade/recovery process. Please make sure a full backup or server snapshot is taken before attempting any application-level upgrade.”

So then went back into the Plesk Nextcloud dashboard and try to run an update from there, this throw up a brief error message

The current PHP memory limit is below the recommended value of 512MB. 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 There are no commands defined in the “files” namespace.

I was sure that the PHP memory limit was above the recommended value of 512MB, so went to the PHP dashboard (under Dev Tools) and sure enough it was set well above 512MB.

So next I tried unticking the “PHP support” box, and ran the updater from the Plesk Nextcloud dashboard again. This time the update ran without error and I now have the latest version of Nextcloud running!! :grinning_face:

Hope this helps any others who have the same problem.

Thanks to all that offered help.

Glad you got it working!

Not sure what this is referring to, but saw this in the Plesk release notes:

- 512M memory_limit is used for instace upgrade task, to avoid upgrade failures. (EXTPLESK-9680)