Categories: DevOps

How To Fix Jenkins Failing to Start After Disabling RBAC Plugin

Share

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.

The Problem

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.

Root Cause

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.

The Fix

Step 1: Backup the Jenkins Configuration

Always back up your configuration before editing:

cp /var/lib/jenkins/config.xml /var/lib/jenkins/config.xml.bak

Step 2: Edit the Configuration File

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.

Step 3: Restart Jenkins

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.

Conclusion

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! 

Spread the love
Published by
Shaksha
Tags: ci/cdjenkins

Recent Posts

The 12-Factor App: The DevOps Cheat Code You Didn’t Know You Needed

Introduction The 12-Factor App: The DevOps Cheat Code 🤔 If you’ve ever deployed an app…

8 months ago

Difference between CentOS and Ubuntu

Ubuntu and CentOS are two popular open-source operating systems that are widely used in the…

3 years ago

Next-Generation Solid State Cooling Technology for Computers.

Do you know that the cooling system in your computer (Desktop and Laptop) has a…

3 years ago

What is Quantum Computing and Applications of Quantum Computing

Quantum computing is a type of computing that uses quantum-mechanical phenomena, perform calculations and solve…

3 years ago

10 Best VPN Apps For Android in 2023

Virtual Private Network (VPN) apps are essential tools that allow you to secure your online…

3 years ago

Top 10 Free Websites for Coding

As a beginner in coding, it can be overwhelming to choose the right platform to…

3 years ago

This website uses cookies.