CloudBees CI release highlights

What’s new in CloudBees CI 2.479.3.1

Watch video

Upgrade Notes

Operations center CloudBees Assurance Program plugin changes since 2.479.2.3

The following plugins have been added to the Operations center CloudBees Assurance Program since 2.479.2.3:

  • Commons Compress API (commons-compress-api)


Controller CloudBees Assurance Program plugin changes since 2.479.2.3

The following plugins have been added to the Controller CloudBees Assurance Program since 2.479.2.3:

  • Commons Compress API (commons-compress-api)


New Features

None.

Feature Enhancements

Support for Java 21

Support for Java 21 was added for non-FIPS versions of CloudBees CI. CloudBees recommends that you upgrade your instances to Java 21 as soon as possible for the best experience. For more information, refer to Migrate to Java 21 for CloudBees CI on modern cloud platforms or Migrate to Java 21 for CloudBees CI on traditional platforms.

In the April 2026 release, support for Java 17 will be discontinued and you will be unable to run new versions of the product on Java 17. Releases that occurred during the support window for Java 17 will continue to run on Java 17.


High Availability (HA) Pipeline durability warning update

A warning is displayed if CloudBees CI High Availability (HA) is enabled and Pipeline durability is not set to the maximum survivability/durability or if any Pipeline job has enabled the "Do not allow the pipeline to resume if the controller restarts" property. This warning, previously shown only to administrators, will now also be visible to users with the SYSTEM_READ or MANAGE permissions.


Automatically refresh display of a High Availability (HA) controller cluster state

The Cluster state section of the High Availability (HA) screen now refreshes itself every few seconds without requiring the page to be reloaded.


High Availability (HA) controllers no longer run reverse proxies through a configured (forward) proxy

Since all replicas of a High Availability (HA) controller are expected to be on the same LAN, reverse proxy functionality (for example, used to display a build managed by a replica other than the one with the sticky session) no longer honors the Jenkins (forward) proxy configuration. The corresponding administrative monitor has also been removed, as there is no longer a need to list replica IP addresses among the no-proxy hosts.


The /queue/api/json API now returns aggregated output from all replicas

Previously, the aggregation API /queue/api/json only returned the output from the replica that processed the request and this resulted in deviation between the API output and the UI Build Queue panel. With the implementation of supporting aggregated output in /queue/api/json, the output now contains queue items from all replicas. This is similar to the other two aggregation APIs /jobs/../api/json and /computer/api/json.


Allow users with SYSTEM_READ permission to view administrative monitors about agents

Previously, only users with administrator rights could access this administrative monitor. Now, users with SYSTEM_READ permission can also view the warning, but they cannot take any action on it (for example, uninstall the plugin or dismiss the notification).


Users with the SYSTEM_READ permission can monitor checks for mixed active-active and active-passive High Availability (HA) functionality

Users with the SYSTEM_READ permission now receive warnings if active-active High Availability (HA) is enabled, but some aspects of the older active-passive High Availability (HA) functionality remain active. Previously, this was only visible to administrators.


SYSTEM_READ users can now receive alerts if the Hazelcast cluster fails to form

Users with the SYSTEM_READ permission are now alerted if a problem is detected when a Hazelcast cluster for a traditional High Availability (HA) controller is formed. Previously, this alert was only visible to administrators.

Resolved Issues

Redundant save of $JENKINS_HOME/config.xml from High Availability (HA) replicas

When one replica in a High Availability (HA) controller saved $JENKINS_HOME/config.xml, the other replicas reloaded it from disk as expected, but also resaved it. This was not the best use of I/O, and potentially a source of occasional errors in network filesystems.


High Availability (HA) improves robustness of queue adoption when a replica is terminated

When a replica is terminated unexpectedly, some queue items could get lost and this causes Pipelines to wait indefinitely. Now, these queue items are rescheduled automatically and allow the Pipelines to proceed normally.


ClassNotFoundException: QueueLoadBalancerAction in the Manage Old Data screen

When you upgraded a High Availability (HA) controller to the 2.479.3.1 release, it may have triggered a display of unwanted entries in the Manage Old Data screen. Now, it no longer displays the unwanted entries.


Multi-branch project refuses to build new commit

Under certain circumstances, a Multi-branch project configured to use the Initial Index Build Prevention strategy may have incorrectly refused to trigger a build of a new commit, whether from an event or branch indexing. Now, a Multi-branch project no longer incorrectly refuses to trigger a build of a new commit.


StackOverflowError involving QueueLoadBalancer class in a High Availability (HA) controller

Under certain circumstances, a High Availability (HA) controller queue maintenance could trigger a StackOverflowError between QueueLoadBalancer and Queue#getCauseOfBlockageForItem.


Build storm prevention failed to log justifications

When using the Multi-branch project trait to avoid triggering builds due to branch reindexing without real changes, no messages were printed to the branch indexing log that explains why a build was or was not being triggered. This made it more difficult to diagnose problems.


Errors in High Availability (HA) controllers missing Elasticsearch Reporter plugins when configured on the operations center

When the Elasticsearch Reporter plugins were installed on the operations center and configured to push the configuration to the managed controllers, an High Availability (HA) managed controller lacked the controller plugins. Errors could be thrown that synchronized settings from the operations center with the result that some replicas would be unable to use the operations center single sign-on (SSO) and potentially other functions.


Honor the abort builds setting of Multi-branch projects in High Availability (HA) controllers

When a Multi-branch Pipeline project is configured to abort builds of merged or otherwise closed branches or change requests ahead of actually deleting them, builds that run on corresponding branch projects were not consistently aborted in High Availability (HA) controllers.


Internal changes for CI Catalog Server logs related to Failed to write

The incorrect logs related to Failed to write in the CI Catalog Server were not accurate and could have led to a false analysis.


Jenkins instance does not fail and continues to start up if the Update Center JSON file is unavailable or non-parseable

The Jenkins instance will now immediately fail to start if the Update Center JSON file is unavailable or cannot be parsed.


Added enhanced support for data persistence of the Configuration as Code bundle assigned to the controller via the API and Jenkins CLI workflow

Added enhanced support for data persistence of the Configuration as Code bundle that is assigned to the controller via the API and Jenkins CLI workflow.


Update the client controller to revert to the existing configuration when the Configuration as Code bundle file is inaccessible through the proxy

This change improves the resilience of the client controllers by implementing a fallback mechanism. When the Configuration as Code bundle file is inaccessible due to proxy issues, the system will automatically revert to the existing configuration, ensuring continued operations without disruptions. This provides a more reliable experience in environments with proxy-related access limitations or misconfigurations.


Configuration as Code remote validation did not work properly with the override merge strategy

The Configuration as Code remote validation did not work properly with the override merge strategy as an unexpected warning was raised without a descriptive reason.


Describable object was ignored during Configuration as Code item export

When a NullPointerException was returned after reading the value of a describable’s property, the Configuration as Code item export ignored the describable object.


Restrict the plugin catalog in controllers while in FIPS mode

The plugin catalog is no longer displayed in the controller UI when running in FIPS mode.


Restrict insecure delivery automation URLs in FIPS mode

In FIPS mode, the CloudBees Platform Common plugin (cloudbees-platform-common) now enforces the use of secure URLs for the delivery automation endpoint. Any attempt to configure an insecure URL will be rejected, ensuring compliance with FIPS requirements.


Generating the User Activity Report summary no longer takes a long time in certain environments

The generation of the User Activity Report summary no longer takes a long time in environments with many duplicated User IDs or emails.


IncompatiblePluginAdministrativeMonitor should be accessible to users with SYSTEM_READ permission

Previously, only users with the ADMINISTRATOR permission could access this admin monitor. Now, users with SYSTEM_READ permission can also view the warning, but they will not be able to take any action on it (for example, uninstall the plugin or dismiss the notification).


CloudBees HashiCorp Vault Plugin did not support replication of credentials and folder-level authentications for HA/HS

Since the release of the CloudBees HashiCorp Vault Plugin version 1.501, the HA/HS replication support for credentials configured via this plugin was not functional. Since the release of the CloudBees HashiCorp Vault Plugin version 1.521, replication support for folder-level authentication configurations in this plugin was also not functional.


The operations center and controllers are not correctly subscribed in messaging system with a dynamic load

The operations center and controllers were not correctly subscribed in the messaging system with a dynamic load which led to new submissions not being analyzed and data could not be seen since the CloudBees CI 2.462.1.3 release.


Negative log size displayed for files larger than 2GB in the CloudBees Pipeline Explorer

Previously, a negative value was displayed for the file size in the CloudBees Pipeline Explorer UI when the log size was greater than 2GB. This issue has been resolved.


The CloudBees SSH Build Agents plugin supports the ed25519 host key

With the EDDSA API plugin, the SSH ed25519 key is now supported and can be used during key exchange negotiations.


Remove invalid core validation in the Update Center JSON file

Removed an incorrect validation that was performed in the Update Center data file when a mirror server was configured to manage the plugins using Configuration as Code. The file was considered invalid when a new CloudBees CI version was available.

Known Issues

GitHub Plugin settings would not load on startup

The Github Plugin configuration failed to load during the Operations center startup. Refer to GitHub Plugin settings not loaded on startup after upgrading for more information.


Duplicate plugins in the Operations Center Plugin Manager UI

When you search for a specific plugin under Available tab in operations center Plugin Manager, the search results shows duplicate entries of the searched plugin.


Firefox download of .tgz suffix files will not unpack in CloudBees CI 2.479.1.x, 2.479.2.x, and 2.479.3.x

CloudBees CI users running versions 2.479.1.4, 2.479.2.3, and 2.479.3.1 with the Firefox web browser will be unable to unpack compressed tar archives with the .tgz suffix due to a bug in Eclipse Jetty 12.0.0 through 12.0.14. The issue has been fixed in Eclipse Jetty 12.0.15 and will be included in a future release of CloudBees CI.

The following workarounds are available for users running CloudBees CI versions 2.479.1.4, 2.479.2.3, and 2.479.3.1:

  • Run CloudBees CI with the --compression=none flag to disable content compression by Eclipse Jetty 12.

  • Use Google Chrome or Microsoft Edge instead of Firefox to download the archive with the .tgz suffix.

  • Download with a tar.gz suffix instead of a .tgz suffix.