Error Class App Http Controllers DeviceController does not exist

I migrated librenms to another VM yesterday and thought everything was working correctly. The devices are polling correctly.
/opt/librenms/discovery.php new 2020-05-19 10:50:02 - 0 devices discovered in 0.001 secs /opt/librenms/poller.php 11 2020-05-19 10:50:07 - 1 devices polled in 1.366 secs /opt/librenms/poller.php 7 2020-05-19 10:50:16 - 1 devices polled in 10.72 secs /opt/librenms/poller.php 6 2020-05-19 10:50:16 - 1 devices polled in 10.70 secs /opt/librenms/poller.php 17 2020-05-19 10:50:17 - 1 devices polled in 11.41 secs /opt/librenms/poller.php 10 2020-05-19 10:50:18 - 1 devices polled in 12.94 secs /opt/librenms/poller.php 8 2020-05-19 10:50:18 - 1 devices polled in 13.05 secs /opt/librenms/poller.php 13 2020-05-19 10:50:18 - 1 devices polled in 12.92 secs /opt/librenms/poller.php 2 2020-05-19 10:50:18 - 1 devices polled in 13.33 secs /opt/librenms/poller.php 1 2020-05-19 10:50:18 - 1 devices polled in 13.52 secs /opt/librenms/poller.php 18 2020-05-19 10:50:18 - 1 devices polled in 13.29 secs /opt/librenms/poller.php 5 2020-05-19 10:50:18 - 1 devices polled in 13.28 secs /opt/librenms/poller.php 4 2020-05-19 10:50:18 - 1 devices polled in 13.89 secs /opt/librenms/poller.php 15 2020-05-19 10:50:19 - 1 devices polled in 14.54 secs /opt/librenms/poller.php 16 2020-05-19 10:50:19 - 1 devices polled in 14.90 secs /opt/librenms/poller.php 9 2020-05-19 10:50:19 - 1 devices polled in 15.00 secs /opt/librenms/poller.php 3 2020-05-19 10:50:39 - 1 devices polled in 35.15 secs ...........

Looks like everything is up-to-date

-bash-4.2$ ./daily.sh
Updating to latest release OK
Updating Composer packages OK
Updating SQL-Schema OK
Updating submodules OK
Cleaning up DB OK
Fetching notifications OK
Caching PeeringDB data OK
-bash-4.2$

-bash-4.2$ git status
HEAD detached at 1.63
nothing to commit, working directory clean
-bash-4.2$

and validates fine.

[root@librenms librenms]# ./validate.php

====================================

Component Version
LibreNMS 1.63
DB Schema 2020_04_19_010532_eventlog_sensor_reference_cleanup (164)
PHP 7.3.18
MySQL 5.5.65-MariaDB
RRDTool 1.5.5
SNMP NET-SNMP 5.7.2

====================================

[OK] Composer Version: 1.10.6
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database schema correct
[WARN] IPv6 is disabled on your server, you will not be able to add IPv6 devices.
[root@librenms librenms]#`

However, if I click on any device listed in the librenms webui I get an error “Whoops, looks like something went wrong. Check your librenms.log.” Looking at the log I see the following with every attempt to open a device.

[2020-05-19 10:47:05] production.ERROR: Class App\Http\Controllers\DeviceController does not exist {"exception":"[object] (ReflectionException(code: -1): Class App\\Http\\Controllers\\DeviceController does not exist at /opt/librenms/vend or/laravel/framework/src/Illuminate/Container/Container.php:788) [stacktrace] #0 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/Container.php(788): ReflectionClass->__construct('App\\\\Http\\\\Contro...') #1 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/Container.php(667): Illuminate\\Container\\Container->build('App\\\\Http\\\\Contro...') #2 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/Container.php(615): Illuminate\\Container\\Container->resolve('App\\\\Http\\\\Contro...', Array) #3 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(767): Illuminate\\Container\\Container->make('App\\\\Http\\\\Contro...', Array) #4 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Route.php(233): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Contro...') #5 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Route.php(833): Illuminate\\Routing\\Route->getController() #6 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Route.php(794): Illuminate\\Routing\\Route->controllerMiddleware() #7 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(693): Illuminate\\Routing\\Route->gatherMiddleware() #8 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(673): Illuminate\\Routing\\Router->gatherRouteMiddleware(Object(Illuminate\\Routing\\Route)) #9 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(657): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request)) #10 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(623): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route)) #11 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(612): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request)) #12 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request)) #13 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request)) #14 /opt/librenms/vendor/darkghosthunter/larapoke/src/Http/Middleware/LarapokeGlobalMiddleware.php(18): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #15 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): DarkGhostHunter\\Larapoke\\Http\\Middleware\\LarapokeGlobalMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #16 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #17 /opt/librenms/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #18 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #19 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #20 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #21 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #22 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #23 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #24 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #25 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #26 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #27 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #28 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #29 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #30 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #31 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #32 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #33 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #34 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request)) #35 /opt/librenms/html/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request)) #36 {main} "}

I found another thread where if you have your domain defined as an array it could cause this but I’m not sure where to look for this setting. Other than that, I’m not sure what else to check to resolve this issue. Any help would be greatly appreciated.

By any chance, the old server what LibreNMS version?

If greater than 1.63 you must update new server to, at least, the same version.

I honestly don’t know the the old VM was blown away as I told them everything was migrated. All I have remaining is a the mysql export, rrd data and the config.php.

Actually it appears they have a snapshot of the old server from 5/14. Going to see if I can get them to restore the server temporarily so I can grab that information from it.

I think it will be way faster if you directly update to master your current install and see if everything works

Oh yea, good call. I just did that and all is well.

IE.
[root@librenms ~]# cd /opt/librenms && git checkout master
Previous HEAD position was 84c1f1a… Bump version to 1.63
Switched to branch ‘master’
Your branch is behind ‘origin/master’ by 2 commits, and can be fast-forwarded.
(use “git pull” to update your local branch)
[root@librenms librenms]# git pull
remote: Enumerating objects: 49, done.
remote: Counting objects: 100% (49/49), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 51 (delta 33), reused 40 (delta 30), pack-reused 2
Unpacking objects: 100% (51/51), done.
From https://github.com/librenms/librenms
3985ce7…0b68c70 master -> origin/master

  • ffc5baf…8034854 shift-26000 -> origin/shift-26000 (forced update)
    Updating 9ac05f4…0b68c70
    Fast-forward
    .travis.yml | 6 ±-
    LibreNMS/library.py | 65 ++±------------------------
    composer.json | 2 ±
    composer.lock | 444 ++++++++++++++++++++++++++++++++++++++++++++±-----------------------------------------------------------------------------------------------------------------------------------------------
    discovery-wrapper.py | 16 ±-----
    includes/snmp.inc.php | 2 ±
    poller-wrapper.py | 18 ±------
    services-wrapper.py | 18 ±------
    tests/AuthHTTPTest.php | 4 ±
    tests/AuthSSOTest.php | 4 ±
    tests/ConfigTest.php | 2 ±
    tests/DBSetupTest.php | 2 ±
    tests/DBTestCase.php | 2 ±
    tests/OSDiscoveryTest.php | 2 ±
    tests/OSModulesTest.php | 4 ±
    tests/Unit/Data/DatastoreTest.php | 2 ±
    tests/Unit/Data/GraphiteStoreTest.php | 4 ±
    tests/Unit/Data/OpenTSDBStoreTest.php | 4 ±
    tests/Unit/Data/PrometheusStoreTest.php | 2 ±
    19 files changed, 136 insertions(+), 467 deletions(-)
    [root@librenms librenms]#

So when daily.sh runs it breaks it again. I tried what I did yesterday but now things are different. Any suggestions?

[root@librenms librenms]# /opt/librenms/daily.sh
Re-running /opt/librenms/daily.sh as librenms user
fatal: no tag exactly matches ‘370c7f5662c25605e5569349bc64bd08a0993c5a’
Updating to latest release OK
Updating Composer packages OK
Updated from 1.63 to OK
Updating SQL-Schema OK
Updating submodules OK
Cleaning up DB OK
Fetching notifications OK
Caching PeeringDB data OK
[root@librenms librenms]#

At this point, I cannot go into any device. When I try what fixed it yesterday, I get the following:

[root@librenms librenms]# cd /opt/librenms && git checkout master error: The following untracked working tree files would be overwritten by checkout: LibreNMS/Interfaces/UI/DeviceTab.php app/Http/Controllers/Device/Tabs/AccessPointsController.php app/Http/Controllers/Device/Tabs/AlertStatsController.php app/Http/Controllers/Device/Tabs/AlertsController.php app/Http/Controllers/Device/Tabs/AppsController.php app/Http/Controllers/Device/Tabs/CaptureController.php app/Http/Controllers/Device/Tabs/CollectdController.php app/Http/Controllers/Device/Tabs/EditController.php app/Http/Controllers/Device/Tabs/GraphsController.php app/Http/Controllers/Device/Tabs/HealthController.php app/Http/Controllers/Device/Tabs/InventoryController.php app/Http/Controllers/Device/Tabs/LatencyController.php app/Http/Controllers/Device/Tabs/LoadBalancerController.php app/Http/Controllers/Device/Tabs/LogsController.php app/Http/Controllers/Device/Tabs/MefController.php app/Http/Controllers/Device/Tabs/MibController.php app/Http/Controllers/Device/Tabs/MuninController.php app/Http/Controllers/Device/Tabs/NacController.php app/Http/Controllers/Device/Tabs/NeighboursController.php app/Http/Controllers/Device/Tabs/NetflowController.php app/Http/Controllers/Device/Tabs/NotesController.php app/Http/Controllers/Device/Tabs/OverviewController.php app/Http/Controllers/Device/Tabs/PackagesController.php app/Http/Controllers/Device/Tabs/PortController.php app/Http/Controllers/Device/Tabs/PortsController.php app/Http/Controllers/Device/Tabs/PrinterController.php app/Http/Controllers/Device/Tabs/ProcessesController.php app/Http/Controllers/Device/Tabs/PseudowiresController.php app/Http/Controllers/Device/Tabs/RoutingController.php app/Http/Controllers/Device/Tabs/ServicesController.php app/Http/Controllers/Device/Tabs/ShowConfigController.php app/Http/Controllers/Device/Tabs/SlasController.php app/Http/Controllers/Device/Tabs/StpController.php app/Http/Controllers/Device/Tabs/TnmsneController.php app/Http/Controllers/Device/Tabs/VlansController.php app/Http/Controllers/Device/Tabs/VmInfoController.php app/Http/Controllers/Device/Tabs/WirelessController.php app/Observers/DeviceObserver.php mibs/qtech/QTECH-MIB resources/views/device/header.blade.php resources/views/device/index.blade.php resources/views/device/tabs/latency.blade.php resources/views/device/tabs/legacy.blade.php Please move or remove them before you can switch branches. Aborting [root@librenms librenms]#

Haha, coz you didnt change your update_channel in config.php

Move it from release to master then run ./daily.sh again

offs… yea, I knew that. Thanks again.