What Is New in Jenkins 2.492.x
Jenkins 2.492.x is a significant LTS release that focuses on modernizing the platform by phasing out legacy components and tightening security defaults. The most notable change is the disabling of the Yahoo! UI library, a major step in a multi-year effort to update the frontend stack.
| Category | Key Changes |
|---|---|
| Deprecation & Removal | Yahoo! UI (YUI) disabled by default; Configurable agent protocols list removed |
| Security | Inbound TCP agent protocol is now the primary, non-configurable method |
| Configuration as Code (JCasC) | Breaking change: agentProtocols section is now ignored and will block startup |
Why Was Yahoo! UI (YUI) Disabled?
YUI is now disabled by default. This is the culmination of a long-term project to replace this legacy JavaScript library with modern alternatives. The core Jenkins UI and various plugins have been updated over several releases to ensure no functionality is lost.
In practice, most users won't notice a difference because the replacements are already in place. If you have a custom plugin or theme that still relies on YUI, you can temporarily re-enable it by setting the system property: -Djenkins.model.experimentalflags.RemoveYuiUserExperimentalFlag.defaultValue="false". Be aware that full removal of YUI is planned for a future LTS release.
What Changed with Agent Protocols?
The ability to configure the list of allowed agent protocols has been completely removed from the GUI and Configuration as Code. The protocol negotiation was a potential security vector. Now, only two protocols are supported: one for standard inbound TCP agents and a simple ping protocol for connectivity tests.
This matters because it simplifies security hardening. If you don't want to allow inbound TCP agents at all, the correct method is to disable the TCP port for agents (by default 50000) rather than trying to disable the protocol itself through configuration.
How Does This Affect Configuration as Code (JCasC)?
This is a breaking change for JCasC users. Any existing configuration that includes an agentProtocols section will cause Jenkins to cancel startup by default. The JCasC plugin treats this deprecated configuration as an error to force administrators to update their YAML files immediately.
To upgrade, you must remove the entire agentProtocols section from your configuration. If you need to transition without immediate downtime, you can change the JCasC behavior to warn instead of fail by adding this to your global configuration:
configuration-as-code:
deprecated: warn
However, the configuration will still be ignored; this only changes the startup behavior.
FAQ
My Jenkins startup failed after upgrading to 2.492.1 and I use JCasC. What happened?
Your Configuration as Code YAML file almost certainly contains an agentProtocols section, which is now a deprecated configuration. The JCasC plugin blocks startup by default when it encounters deprecated elements. Remove the agentProtocols section from your configuration to resolve this.
A critical plugin broke after the upgrade, what should I do?
If a plugin fails because it depends on the YUI library, your short-term fix is to re-enable YUI by setting the system property -Djenkins.model.experimentalflags.RemoveYuiUserExperimentalFlag.defaultValue="false". Then, contact the plugin maintainer to report the issue and request they update their plugin to use a modern library.
How do I secure agent connections now that I can't configure protocols?
Protocol configuration was never the right way to secure agents. To properly secure connections, you should disable the inbound TCP port (50000) if you don't use it. For secure communication, use the recommended method of having agents connect outbound to the controller via JNLP or implement SSH-based agents.
Will setting JCasC to 'warn' instead of 'fail' let me keep my old protocol config?
No. Setting deprecated: warn only changes the startup behavior from failing to logging a warning. The agentProtocols configuration is completely ignored and has no effect on how Jenkins operates. You must still remove it from your configuration.
Is this the final removal of YUI?
No. This release disables YUI by default. The complete removal of the YUI library from the Jenkins war file is scheduled for a future LTS release. This gives plugin developers and administrators more time to test and migrate away from any remaining YUI dependencies.