A bug corrupts a file from ULC (User License Counting) causing delayed logins and other potential side effects in CloudBees CI release 2.516.1.28665

Last Reviewed:2025-07-31()
2 minute readKnowledge base

Issue

  • After upgrading CloudBees CI to release 2.516.1.28665, I am experiencing delays when logging in, and also notice some overall slowness in my daily performance. This issue has started at the same time the logs are printing the following:

WARNING c.c.c.l.t.c.IdentityStorageHandler#flush: Error writing identities com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `com.cloudbees.ci.license.tracker.model.Identity` from Null value (token `JsonToken.VALUE_NULL`) at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 64, column: 1] [...]

Resolution

The issue will be resolved in a future release of CloudBees CI.

Workaround

Upgrade to CloudBees CI release 2.516.1.28669, then uninstall the cloudbees-license-tracker-plugin and restart the instance.

  1. You can uninstall the plugin on your operations center and controllers by navigating to Manage Jenkins  Plugins  Installed plugins, then searching for the cloudbees-license-tracker and clicking on the Uninstall button and restart the instance.

  2. You can also uninstall the plugin on all controllers at once using a Cluster Operation:

    1. Navigate to the operations center and choose New Item  Cluster Operations and choose a name for the job such as 'Uninstall cloudbees-license-tracker plugin from all controllers'.

    2. Under the Operations section, select Add Operation  Controllers

    3. Under Source, choose From Operations Center Root and any filter you want to apply, such as Client Controller / Managed Controller Is Online

    4. Under Steps, choose Add Step  Execute Groovy Script on Controller and paste:

      def pluginShortName = "cloudbees-license-tracker" Jenkins jenkins = Jenkins.instance def pluginManager = jenkins.pluginManager def plugin = pluginManager.getPlugin(pluginShortName) if (plugin != null) { println "Uninstalling plugin: ${plugin.displayName}" plugin.doDoUninstall() println "Plugin ${plugin.displayName} uninstalled." } else { println "Plugin with short name ${pluginShortName} not found." }
    5. Under Steps, choose Add Step  Restart Now if you wan to forcefully restart the controllers after the plugin is uninstalled, or you can choose to restart after builds are completed by choosing Add Step  Safe Restart

    6. Run this cluster operation once

Alternatively, if you are still running 2.516.1.28665, you can execute the snippet below under Manage Jenkins  Script Console to forcibly regenerate the affected file. This does not require a restart.

def file = new File(Jenkins.instance.getRootDir(), 'com.cloudbees.ci.license.tracker.consolidation.IdentityStorage') println file.delete()