Everything was running smoothly on my Jenkins server until I enabled Role-Based Access Control (RBAC) to manage developer permissions.
After adding a new “Developer” user through the Role Strategy Plugin, I noticed that user permissions weren’t working as expected.
To troubleshoot, I deactivated the plugin — and that’s when the real trouble began.
After disabling the RBAC plugin, Jenkins refused to start.
Checking the service status showed this:
systemctl status jenkins.service × jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled)
Active: failed (Result: exit-code)
Process: 291330 ExecStart=/usr/bin/jenkins (code=exited, status=5)
When I checked the logs (journalctl -u jenkins), I found this clue:
CannotResolveClassException: com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy
That was the smoking gun 🔫 — Jenkins was still trying to load the Role Strategy plugin, even though I had uninstalled it.
Jenkins stores its configuration in /var/lib/jenkins/config.xml.
Inside that file, there’s an XML block called <authorizationStrategy> that defines which security model Jenkins should use.
When the RBAC plugin was installed, this block looked like this:
<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
...
</authorizationStrategy>
So when the plugin was removed, Jenkins couldn’t find the class RoleBasedAuthorizationStrategy — and failed to start completely.
Always back up your configuration before editing:
cp /var/lib/jenkins/config.xml /var/lib/jenkins/config.xml.bak
Open the file in your favorite editor:
nano /var/lib/jenkins/config.xml Find and replace the entire authorization block with this safe, built-in strategy:
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>false</denyAnonymousReadAccess>
</authorizationStrategy> This change tells Jenkins to use the default “full control once logged in” model and ignore the missing plugin.
Reload and restart the service:
systemctl daemon-reload
systemctl restart jenkins
systemctl status jenkins -l Within a few seconds, Jenkins should be back up and running.
Jenkins’ flexibility is both a blessing and a curse.
While plugins make it incredibly powerful, removing or disabling them can sometimes break things if the configuration still references them.
By resetting the authorizationStrategy in config.xml, Jenkins was back online without losing any jobs, builds, or pipelines.
A small XML edit saved hours of rebuild time!
Introduction The 12-Factor App: The DevOps Cheat Code 🤔 If you’ve ever deployed an app…
Ubuntu and CentOS are two popular open-source operating systems that are widely used in the…
Do you know that the cooling system in your computer (Desktop and Laptop) has a…
Quantum computing is a type of computing that uses quantum-mechanical phenomena, perform calculations and solve…
Virtual Private Network (VPN) apps are essential tools that allow you to secure your online…
As a beginner in coding, it can be overwhelming to choose the right platform to…
This website uses cookies.