# Nextcloud 29 update issues: ReflectionException

**URL:** <https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044>\
**Category:** ℹ️ Support\
**Tags:** update\_problems, github\_issue\_exists, nc28, nc29\
**Created:** [May 8, 2024, 1:51am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044 "2024-05-08T01:51:08Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![zgq19941223](https://help.nextcloud.com/user_avatar/help.nextcloud.com/zgq19941223/32/11348_2.png) [@zgq19941223](https://help.nextcloud.com/u/zgq19941223)\
**Post date:** [May 8, 2024, 1:51am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/1 "2024-05-08T01:51:08Z")

</div>

When I upgrade Nextcloud from 28.0.0.4 to 29.0.0, I can’t open the dashboard.  
Here is the log ,please help give me some advice, thanks.

{“reqId”:“oIR1l4xtVXxome7MqJnz”,“level”:3,“time”:“2024-05-08T01:44:15+00:00”,“remoteAddr”:“180.168.185.6”,“user”:“admin”,“app”:“index”,“method”:“GET”,“url”:“/index.php/apps/dashboard/”,“message”:“Class "OCA\Files\Controller\AjaxController" does not exist”,“userAgent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”,“version”:“29.0.0.19”,“exception”:{“Exception”:“ReflectionException”,“Message”:“Class "OCA\Files\Controller\AjaxController" does not exist”,“Code”:-1,“Trace”:[{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/Route/Router.php”,“line”:469,“function”:“\_\_construct”,“class”:“ReflectionClass”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/Route/Router.php”,“line”:161,“function”:“getAttributeRoutes”,“class”:“OC\Route\Router”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/Route/Router.php”,“line”:400,“function”:“loadRoutes”,“class”:“OC\Route\Router”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/Route/CachingRouter.php”,“line”:65,“function”:“generate”,“class”:“OC\Route\Router”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/URLGenerator.php”,“line”:103,“function”:“generate”,“class”:“OC\Route\CachingRouter”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/NavigationManager.php”,“line”:371,“function”:“linkToRoute”,“class”:“OC\URLGenerator”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/NavigationManager.php”,“line”:132,“function”:“init”,“class”:“OC\NavigationManager”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/TemplateLayout.php”,“line”:110,“function”:“getAll”,“class”:“OC\NavigationManager”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/legacy/OC\_Template.php”,“line”:145,“function”:“\_\_construct”,“class”:“OC\TemplateLayout”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/public/AppFramework/Http/TemplateResponse.php”,“line”:211,“function”:“fetchPage”,“class”:“OC\_Template”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/AppFramework/Http/Dispatcher.php”,“line”:183,“function”:“render”,“class”:“OCP\AppFramework\Http\TemplateResponse”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/AppFramework/App.php”,“line”:184,“function”:“dispatch”,“class”:“OC\AppFramework\Http\Dispatcher”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/private/Route/Router.php”,“line”:338,“function”:“main”,“class”:“OC\AppFramework\App”,“type”:“::”},{“file”:“/www/wwwroot/cloud.yra.xyz/lib/base.php”,“line”:1050,“function”:“match”,“class”:“OC\Route\Router”,“type”:“-\>”},{“file”:“/www/wwwroot/cloud.yra.xyz/index.php”,“line”:49,“function”:“handleRequest”,“class”:“OC”,“type”:“::”}],“File”:“/www/wwwroot/cloud.yra.xyz/lib/private/Route/Router.php”,“Line”:469,“message”:“Class "OCA\Files\Controller\AjaxController" does not exist”,“exception”:{},“CustomMessage”:“Class "OCA\Files\Controller\AjaxController" does not exist”}}

---

<div class="post-metadata">

**Author:** ![BlueBee](https://help.nextcloud.com/letter_avatar/bluebee/32/5_5575768a8748004e209b776fc1b2916d.png) [@BlueBee](https://help.nextcloud.com/u/BlueBee)\
**Post date:** [May 8, 2024, 3:15am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/2 "2024-05-08T03:15:59Z")

</div>

According to the Nextcloud documentation, you should not skip any point releases before upgrading to the next major release.

- If I can read your issue, you upgraded from version 28.0.0.4 directly to version 29.0.0.
- You should have upgraded from version 28.0.0.4 to the next point release ,version 28.0.1, followed by upgrading to version 28.0.2, then v 28.0.3,… until version 28.0.5. Then you are able to update to version 29.0.0
- If you meant your release was v28.0.4 in stead of 28.0.0.4, then stil you needed to upgrade to v 28.0.5 first before upgrading to v 29.0.0

Reference: [How to upgrade — Nextcloud latest Administration Manual latest documentation](https://docs.nextcloud.com/server/28/admin_manual/maintenance/upgrade.html)

Nextcloud must be upgraded step by step:

```
    Before you can upgrade to the next major release, Nextcloud upgrades to the latest point release.

    Then run the upgrade again to upgrade to the next major release’s latest point release.

    You cannot skip major releases. Please re-run the upgrade until you have reached the highest available (or applicable) release.

    Example: 18.0.5 -> 18.0.11 -> 19.0.5 -> 20.0.2

```

---

<div class="post-metadata">

**Author:** ![zgq19941223](https://help.nextcloud.com/user_avatar/help.nextcloud.com/zgq19941223/32/11348_2.png) [@zgq19941223](https://help.nextcloud.com/u/zgq19941223)\
**Post date:** [May 8, 2024, 6:06am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/3 "2024-05-08T06:06:19Z")

</div>

> [@BlueBee](#):
>
> 0.5 first before upgrading to v 29.0.0

Thank you so much, I should not skip the point release directly to the major release V29.0.0.

---

<div class="post-metadata">

**Author:** ![S.R](https://help.nextcloud.com/letter_avatar/s.r/32/5_5575768a8748004e209b776fc1b2916d.png) [@S.R](https://help.nextcloud.com/u/S.R)\
**Post date:** [May 8, 2024, 8:09am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/4 "2024-05-08T08:09:36Z")

</div>

FYI: my updates happen everytime via cli  
sudo -u www-data php updater/updater.phar -vvv

There was a time window in which an update 28.0.4 was offered directly to 29.0.

The update 28.0.4 to 28.0.5 only appeared a day (or some hours) later.  
I think nextcloud has (had) a problem with the deployment here.

---

<div class="post-metadata">

**Author:** ![jtr](https://help.nextcloud.com/letter_avatar/jtr/32/5_5575768a8748004e209b776fc1b2916d.png) [@jtr](https://help.nextcloud.com/u/jtr)\
**Post date:** [May 8, 2024, 11:05am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/5 "2024-05-08T11:05:26Z")

</div>

> [@S.R](#):
>
> There was a time window in which an update 28.0.4 was offered directly to 29.0.
> 
> The update 28.0.4 to 28.0.5 only appeared a day (or some hours) later.  
> I think nextcloud has (had) a problem with the deployment here

Whatever update path the Updater offers is fine.

The main point in the manual is about making sure you’re not on an ancient maintenance release of the _prior_ major before you jump to a new major.

New maintenance releases published around the same time as a new major release aren’t a problem. And they generally contain the same bug fixes anyway.

---

<div class="post-metadata">

**Author:** ![jtr](https://help.nextcloud.com/letter_avatar/jtr/32/5_5575768a8748004e209b776fc1b2916d.png) [@jtr](https://help.nextcloud.com/u/jtr)\
**Post date:** [May 8, 2024, 11:07am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/6 "2024-05-08T11:07:50Z")

</div>

> [@zgq19941223](#):
>
> Class “OCA\Files\Controller\AjaxController” does not exist”

How did you deploy the updated code? And did you restart your web (or FPM) server/service after doing so? This may merely be a PHP caching matter.

---

<div class="post-metadata">

**Author:** ![zgq19941223](https://help.nextcloud.com/user_avatar/help.nextcloud.com/zgq19941223/32/11348_2.png) [@zgq19941223](https://help.nextcloud.com/u/zgq19941223)\
**Post date:** [May 9, 2024, 3:31am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/7 "2024-05-09T03:31:41Z")

</div>

> [@jtr](#):
>
> How did you deploy the updated code? And did you restart your web (or FPM) server/service after doing so? This may merely be a PHP caching matter.

YES，Just replace the file and run the occ command to upgrade. Then restart the PHP service.

---

<div class="post-metadata">

**Author:** ![provokateurin](https://help.nextcloud.com/letter_avatar/provokateurin/32/5_5575768a8748004e209b776fc1b2916d.png) [@provokateurin](https://help.nextcloud.com/u/provokateurin)\
**Post date:** [May 10, 2024, 5:55am UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/8 "2024-05-10T05:55:32Z")

</div>

Hi, this is a duplicate of [ReflectionException Class does not exist](https://help.nextcloud.com/t/reflectionexception-class-does-not-exist/190862) and will be fixed by [fix(Router): Stop loading routes of disabled apps by provokateurin · Pull Request #44797 · nextcloud/server · GitHub](https://github.com/nextcloud/server/pull/44797)

---

<div class="post-metadata">

**Author:** ![roster-patrol0](https://help.nextcloud.com/letter_avatar/roster-patrol0/32/5_5575768a8748004e209b776fc1b2916d.png) [@roster-patrol0](https://help.nextcloud.com/u/roster-patrol0)\
**Post date:** [May 10, 2024, 12:38pm UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/9 "2024-05-10T12:38:45Z")

</div>

All I should do is just replace this code in the file?

> <https://github.com/nextcloud/server/pull/44797/files/4c5e05f37eaa8b3ee474ab20630a1780b41d4560>
>
> \## Summary
> 
> Routes of disabled apps should not be loaded. The classes are not …loaded by the autoloader and the request will fail trying to use reflection on them.
> 
> \## Checklist
> 
> \- Code is \[properly formatted\](https://docs.nextcloud.com/server/latest/developer\_manual/digging\_deeper/continuous\_integration.html#linting)
> \- \[Sign-off message\](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md) is added to all commits
> \- \[\] Tests (\[unit\](https://docs.nextcloud.com/server/latest/developer\_manual/app\_development/tutorial.html#unit-tests), \[integration\](https://docs.nextcloud.com/server/latest/developer\_manual/app\_development/tutorial.html#integration-tests), api and/or acceptance) are included
> \- \[\] Screenshots before/after for front-end changes
> \- \[\] Documentation (\[manuals\](https://github.com/nextcloud/documentation/) or wiki) has been updated or is not required
> \- \[\] \[Backports requested\](https://github.com/nextcloud/backportbot/#usage) where applicable (ex: critical bugfixes)

---

<div class="post-metadata">

**Author:** ![JimmyKater](https://help.nextcloud.com/user_avatar/help.nextcloud.com/jimmykater/32/4850_2.png) [@JimmyKater](https://help.nextcloud.com/u/JimmyKater)\
**Post date:** [May 10, 2024, 1:43pm UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/10 "2024-05-10T13:43:41Z")

</div>

> [@provokateurin](#):
>
> Hi, this is a duplicate of [ReflectionException Class does not exist](https://help.nextcloud.com/t/reflectionexception-class-does-not-exist/190862)

due to the link mentioned above we’re gonna close this one in favour for the other, the above mentioned one

---

<div class="post-metadata">

**Author:** ![JimmyKater](https://help.nextcloud.com/user_avatar/help.nextcloud.com/jimmykater/32/4850_2.png) [@JimmyKater](https://help.nextcloud.com/u/JimmyKater)\
**Post date:** [May 10, 2024, 1:43pm UTC](https://help.nextcloud.com/t/nextcloud-29-update-issues-reflectionexception/191044/11 "2024-05-10T13:43:55Z")

</div>


