Support guidelines
I've found a bug and checked that ...
Description
In the previous release I could add a plugin like this:
docker exec librenms lnms plugin:add socialiteproviders/saml2
Obviously, this isn't the ideal way to add a plugin since it needs to be run every time the container is recreated, but it sort of worked.
In the current version, I get this error:
Could not open input file: require
I'm not a PHP guru, so I'm not sure what changed, but I can absolutely add any other info as needed!
Here's my validate.php:
./validate.php
===========================================
Component | Version
--------- | -------
LibreNMS | 26.4.0 (2026-04-20T04:37:42-04:00)
DB Schema | 2026_04_02_141445_add_ssl_certificate_update_permission (383)
PHP | 8.3.29
Python | 3.12.13
Database | MariaDB 10.11.16-MariaDB-ubu2204
RRDTool | 1.9.0
SNMP | 5.9.4
===========================================
[OK] Installed from the official Docker image; no Composer required
[OK] Database Connected
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK] Database and column collations are correct
[OK] Database schema correct
[OK] MySQL and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service is enabled
[OK] Locks are functional
[OK] No python wrapper pollers found
[OK] Redis is functional
[OK] rrd_dir is writable
[OK] rrdtool version ok
[WARN] Updates are managed through the official Docker image
Expected behaviour
I expect the plugin to install, and in this case for SAML auth to work.
Actual behaviour
The plugin does not install, and errors are output to the log.
Steps to reproduce
I believe this is all that's needed to repro:
$ docker exec librenms lnms plugin:add socialiteproviders/saml2
Could not open input file: require
Docker info
Client:
Version: 28.2.2
Context: default
Debug Mode: false
Plugins:
compose: Docker Compose (Docker Inc.)
Version: 2.37.1+ds1-0ubuntu2~24.04.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Docker Compose config
Logs
This is the symptom, which is that the plugin cannot be installed:
[2026-04-20T09:48:25][ERROR] Wrong value for auth.socialite.configs.saml2.listener set, class: '\SocialiteProviders\Saml2\Saml2ExtendSocialite' does not exist!
[2026-04-20T09:48:25][CRITICAL] Exception: InvalidArgumentException Driver [saml2] not supported. @ /opt/librenms/vendor/laravel/framework/src/Illuminate/Support/Manager.php:104
#0 /opt/librenms/vendor/laravel/framework/src/Illuminate/Support/Manager.php(78): Illuminate\Support\Manager->createDriver()
#1 /opt/librenms/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(363): Illuminate\Support\Manager->driver()
#2 /opt/librenms/app/Http/Controllers/Auth/SocialiteController.php(57): Illuminate\Support\Facades\Facade::__callStatic()
#3 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\Auth\SocialiteController->redirect()
#4 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()
#5 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\Routing\ControllerDispatcher->dispatch()
#6 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\Routing\Route->runController()
#7 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\Routing\Route->run()
#8 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#9 /opt/librenms/app/Http/Middleware/LoadUserPreferences.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#10 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\Http\Middleware\LoadUserPreferences->handle()
#11 /opt/librenms/app/Http/Middleware/VerifyTwoFactor.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#12 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\Http\Middleware\VerifyTwoFactor->handle()
#13 /opt/librenms/app/Http/Middleware/VerifyUserEnabled.php(28): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#14 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\Http\Middleware\VerifyUserEnabled->handle()
#15 /opt/librenms/app/Http/Middleware/CheckInstalled.php(64): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#16 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\Http\Middleware\CheckInstalled->handle()
#17 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#18 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#19 /opt/librenms/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(48): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#20 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Session\Middleware\AuthenticateSession->handle()
#21 /opt/librenms/app/Http/Middleware/LegacyExternalAuth.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#22 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\Http\Middleware\LegacyExternalAuth->handle()
#23 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(87): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#25 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(48): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#27 /opt/librenms/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(120): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /opt/librenms/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#29 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Session\Middleware\StartSession->handle()
#30 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(36): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#32 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(74): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#34 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\Pipeline\Pipeline->then()
#36 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\Routing\Router->runRouteWithinStack()
#37 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\Routing\Router->runRoute()
#38 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\Routing\Router->dispatchToRoute()
#39 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch()
#40 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#41 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#43 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#44 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#46 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#47 /opt/librenms/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
Additional info
No response
Support guidelines
I've found a bug and checked that ...
Description
In the previous release I could add a plugin like this:
Obviously, this isn't the ideal way to add a plugin since it needs to be run every time the container is recreated, but it sort of worked.
In the current version, I get this error:
I'm not a PHP guru, so I'm not sure what changed, but I can absolutely add any other info as needed!
Here's my validate.php:
Expected behaviour
I expect the plugin to install, and in this case for SAML auth to work.
Actual behaviour
The plugin does not install, and errors are output to the log.
Steps to reproduce
I believe this is all that's needed to repro:
Docker info
Docker Compose config
Logs
Additional info
No response