Upgrade Notes

Upgrade the Swarm and Parameterized Scheduler plugins before upgrading CloudBees CI High Availability controllers

Jenkins core is dropping the commons-lang2 library, which is no longer supported. The Swarm plugin (swarm) and Parameterized Scheduler plugin (parameterized-scheduler) have a dependency on it; if you use either plugin, manually upgrade them to the following versions before upgrading your CloudBees CI High Availability (HA) controller:

  • Swarm plugin version 1258.vda_14ddda_0613

  • Parameterized Scheduler plugin version 379.v95c73f233a_df


Operations center CloudBees Assurance Program plugin changes since 2.568.2.37664

The following plugins have been added to the operations center CloudBees Assurance Program since 2.568.2.37664:

  • Nimbus JOSE JWT API Plugin (nimbus-jose-jwt-api)


Controller CloudBees Assurance Program plugin changes since 2.568.2.37664

The following plugins have been added to the controller CloudBees Assurance Program since 2.568.2.37664:

  • Nimbus JOSE JWT API Plugin (nimbus-jose-jwt-api)


New Features

None.

Feature Enhancements

Simplified UI for Move/Copy/Promote, trigger remote build, and copy remote artifact

UI controls used to select local or remote folders or items have been simplified to plain text fields with completion and validation, reducing complexity and more closely aligning with Configuration as Code (CasC), REST, and CLI usage. This includes the target folder selection for Move/Copy/Promote, the source job for copy remote artifact, and the target job for trigger remote build. For build steps, configuration is done through the UI for Freestyle projects and through the Pipeline Syntax tool for Pipeline projects. cjp-protocol URLs are now also supported and properly retained when saving configurations.

For more information, refer to:


CloudBees Pipeline Explorer Related builds badge now uses a neutral color

The badge on the Related builds panel in CloudBees Pipeline Explorer now uses a neutral gray color instead of orange, which previously suggested an error or warning state.

Resolved Issues

CasC bundle validation now correctly handles directory references in the bundle.yaml file for items, rbac, and plugins configuration

In CasC, bundles can reference entire directories instead of listing individual YAML files. Previously, the bundle validation endpoint incorrectly reported these bundles as invalid when a directory was referenced in the rbac, items, or plugins sections of the bundle.yaml file, even though the bundles loaded correctly at runtime. Bundle validation now correctly handles directory references across all supported bundle sections.


Configuration as Code bundle jcasc configuration no longer silently skips entries when multiple directories or files are listed

When a Configuration as Code (CasC) bundle’s jcasc section listed more than one entry where at least one entry was a directory, only the first entry was applied to the controller. All remaining entries, whether a second directory or a standalone file, were silently ignored with no error or warning. This has been resolved; all jcasc entries in a bundle are now applied correctly.


CasC for the operations center no longer hangs at startup when a controller’s Kubernetes cluster is unreachable

Previously, when the operations center was configured with controllers running on a secondary Kubernetes cluster, startup could stall or hang for several minutes while applying its CasC bundle if that cluster was temporarily unreachable or experiencing network issues. Startup now continues normally even when a controller’s cluster cannot be reached; any pending disk-resize checks for those controllers run in the background and no longer block the operations center from coming online.


Role-Based Access Control groups in the controller items.yaml file could not refer to a service account defined in the operations center on first startup

Local group definitions in a controller CasC bundle items.yaml file can refer to service account members defined in the operations center (typically in the operations center rbac.yaml file) when using single sign-on (SSO) with managed authorization. However, validation checking whether the service account name existed could have failed when the controller first started up, before it had connected to the operations center to synchronize its root RBAC configuration. Validation of global service account names is now skipped when applied from a CasC bundle.


vaultGithubApp credentials could fail with a NullPointerException after a Jenkins restart

vaultGithubApp credentials provided by the CloudBees HashiCorp Vault plugin (cloudbees-hashicorp-vault) could become unusable after a Jenkins restart, causing operations that rely on them (such as Multibranch Pipeline or Organization Folder scans and connection tests) to fail with a NullPointerException. This occurred because the credential type extends the GitHub App credentials from the open-source GitHub Branch Source plugin (github-branch-source), whose deserialization logic did not re-initialize the required internal state for a subclass. The deserialization logic has been updated to correctly initialize the required state. As a temporary workaround for previous versions, saving the affected credential again restores it until the next restart.


Support bundles from HA controllers no longer lose entries when log files are very large

When an HA controller generated a support bundle with extremely large log files, some entries could be lost and their content replaced with errors. This occurred because temporary files were deleted if adding them to the support bundle .zip file took more than one minute. This timeout could be exceeded when using log file aggregation mode (the default) or when other large files were included. Temporary files are now deleted immediately after they are read, regardless of how long the read takes.


Quiet Restart now correctly starts controller in quieting down mode

A regression in the CloudBees Quiet Start plugin (cloudbees-quiet-start) caused the Stay in "quieting down" state when restarted checkbox to have no effect, starting the controller in normal operation mode instead of quieting down mode upon restart. This allowed builds to run immediately on controller start, contrary to the expected behavior. When Stay in "quieting down" state when restarted is selected, the controller now correctly starts in quieting down mode, preventing builds from running immediately upon restart.


Groups page no longer renders empty under certain conditions

Under certain conditions, the Role-Based Access Control (RBAC) Groups page or its permission table could appear empty. Rendering of the RBAC Groups page has been improved to handle these cases correctly.


Steps Reference in Pipeline syntax no longer breaks when the Pipeline Event Step plugin is installed

The Pipeline Event Step plugin (pipeline-event-step) included HTML help files that worked for inline display in the Snippet Generator but broke rendering of the Steps Reference. This has been resolved; Steps Reference now renders correctly when the plugin is installed.


Skip group Includes and Excludes fields no longer show incorrect form validation errors

When configuring a skip group, the Includes and Excludes fields accept either an Ant-style pattern like deploy/* or a blank value. A literal name like deploy/main with no wildcards was valid but triggered a form validation error. Form validation has been removed from these fields, as there are no clearly invalid values.


Skip group until field now updates correctly when applying CasC bundles

When using unclassified.skipGroup.skipGroups in jenkins.yaml, edits to until did not take effect when applying revised CasC bundles unless other skip group fields (such as description) were also modified. The until field now updates correctly when a CasC bundle is applied.

Known Issues

CloudBees Platform Insights plugin will be removed from CloudBees Assurance Program

Starting with the late September 2026 release, the CloudBees Platform Insights plugin (cloudbees-platform-insights) will be removed from CloudBees Assurance Program. The CI insights capabilities are now merged into Continuous integration, and this integration type is no longer available in CloudBees Unify. If you have not already migrated from CI insights to Continuous integration (as announced in the May 2026 release notes), you must do so before upgrading. For migration instructions, refer to Migrate from CI insights to Continuous integration.


git-lfs removed from the default Linux agent image

Starting with the September or October 2026 CloudBees CI release, the default CloudBees CI Linux agent image will no longer include git-lfs. This change addresses frequent false-positive vulnerability scan findings caused by git-lfs in the default image.

Who is affected:

  • Linux agent users whose pipelines depend on git-lfs (for example, to pull or push Git LFS-tracked assets).

  • Windows agent images are not affected.

How to prepare:

  • No action is required if your pipelines do not use git-lfs.

  • Identify whether any of your pipelines depend on git-lfs.

  • If you need git-lfs, you will need to opt into an alternative image when this change is released. Instructions will be provided in the release documentation.


Java 25 becomes the default runtime for CloudBees CI Docker images

Starting with the October 2026 release, all CloudBees CI Docker images without a suffix will use Java 25 as the default runtime (equivalent to using the -jdk25 suffix). A Java 21 fallback image will remain available if you are not yet ready to migrate (equivalent to using the -jdk21 suffix). No action is required before the October 2026 release, but you should review your Java version requirements ahead of the upgrade. An administrative monitor has been added to notify you of this upcoming change.


Duplicate plugins in the Operations center Plugin Manager UI

When you search for a specific plugin under the Available tab in the Operations center Plugin Manager, the search results show duplicate entries for the plugin.