Jenkins is an open-source self-hosted automation server replacing GitHub Actions Cloud with complete control over build pipelines, agents, and secrets.
Kohsuke Kawaguchi created Hudson at Sun Microsystems in 2004 to catch broken builds before committing code; after Oracle acquired Sun and claimed trademark rights in 2011, the community renamed the project Jenkins. That history established an automation engine designed for total infrastructure sovereignty. Running Jenkins keeps source code, credentials, build artifacts, and execution nodes entirely under your organizational control.
GitHub Actions Cloud runs workflows on hosted virtual machines where repository metadata, environment secrets, and pipeline definitions transit third-party infrastructure. While GitHub offers self-hosted runners, the coordination control plane, job queues, and build logs still terminate on external servers. For defense contractors, financial institutions, healthcare providers, or teams with air-gapped on-premises data centers, external execution represents an unacceptable security boundary. Jenkins places the controller, scheduler, job history, and workspace files inside your private network or chosen cloud tenant, ensuring sensitive code and signing keys never traverse outside authorized enclaves.
The trade-off centers on operational responsibility. GitHub Actions Cloud provides a zero-maintenance managed control plane with repository setup via YAML workflows, whereas Jenkins demands administrative maintenance for its Java controller, plugin updates, and agent fleet. That overhead buys complete flexibility: you can provision build nodes with specialized hardware, tap into local network caches without egress costs, and enforce governance policies that commercial cloud platforms cannot accommodate.
Is Jenkins free for commercial use? Yes. Jenkins is distributed under an MIT license, permitting installation and execution in commercial environments without seat or concurrency fees.
Jenkins vs GitHub Actions Cloud — which should a team choose? Choose GitHub Actions Cloud if you want a managed SaaS pipeline integrated into your code host with minimal operational maintenance; choose Jenkins if compliance mandates require private network isolation, custom hardware runners, or full control over build data.
Can Jenkins run fully offline in an air-gapped network? Yes. You can package plugins via an internal repository mirror and operate the controller and all build nodes without public internet access.
Jenkins remains the definitive automation engine for organizations that prioritize sovereign infrastructure control over SaaS convenience, whereas teams with standard cloud workflows will find modern hosted services far simpler to operate. Active updates through September 2026 and an MIT license that imposes no seat fees or telemetry tracking make it a dependable foundation for self-hosted enterprise pipelines.
Commands from the official package registries. Each package is matched to Jenkins through the registry's own link to its source code or website.
brew install jenkinsbrew install jenkinssudo pacman -S jenkinsWe started this exact setup from scratch in a clean Linux machine on Oct 23, 2026 and checked it through Jenkins's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p jenkins && cd jenkins
curl -fsSL https://open-source.store/tools/jenkins/compose.yml -o compose.ymltouch .envdocker compose up -dservices:
jenkins:
image: jenkins/jenkins:2.580.1-lts-jdk21
restart: unless-stopped
ports:
- "8080:8080"
environment:
JAVA_OPTS: "-XX:MaxRAMPercentage=50.0"
volumes:
- jenkins-data:/var/jenkins_home
healthcheck:
test: ["CMD-SHELL", "curl -f -s http://localhost:8080/login || exit 1"]
interval: 10s
timeout: 5s
retries: 20
start_period: 30s
volumes:
jenkins-data:
Free IDE for Java, Kotlin, Go, TypeScript and Python. Built on IntelliJ Community, fully open source, 300+ plugins.
Show that Jenkins is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 30 s: jenkins/jenkins:2.580.1-lts-jdk21.
Based on the upstream setup. Based on the official jenkins/jenkins Docker docs pinned to LTS 2.580.1 on JDK 21 with JAVA_OPTS MaxRAMPercentage set to 50.0. Inbound-agent port 50000 is not published (remote agents cannot connect, only the built-in node builds).
jenkins-1 | 2026-10-23T16:47:58.845672721Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:621) jenkins-1 | 2026-10-23T16:47:58.845673763Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.handle(Server.java:197) jenkins-1 | 2026-10-23T16:47:58.845674763Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:804) jenkins-1 | 2026-10-23T16:47:58.845675805Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:420) jenkins-1 | 2026-10-23T16:47:58.845676846Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1790) jenkins-1 | 2026-10-23T16:47:58.845677888Z at Jenkins Main ClassLoader//org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) jenkins-1 | 2026-10-23T16:47:58.845679138Z at Jenkins Main ClassLoader//org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54) jenkins-1 | 2026-10-23T16:47:58.845680221Z at Jenkins Main ClassLoader//org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009) jenkins-1 | 2026-10-23T16:47:58.845686263Z at Jenkins Main ClassLoader//org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1240) jenkins-1 | 2026-10-23T16:47:58.845687430Z at Jenkins Main ClassLoader//org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194) jenkins-1 | 2026-10-23T16:47:58.845688471Z at java.base/java.lang.Thread.run(Unknown Source) jenkins-1 | 2026-10-23T16:47:58.846091555Z 2026-10-23 16:47:58.845+0000 [id=223] WARNING h.i.i.InstallUncaughtExceptionHandler#handleException: Caught unhandled exception with ID 83117832-efd4-4dcc-89f7-896783b81858 jenkins-1 | 2026-10-23T16:47:58.846095221Z java.lang.IllegalArgumentException: /built%2F..%2F..%2F%E0%A4%A/package.json jenkins-1 | 2026-10-23T16:47:58.846096305Z at jenkins.model.AssetManager.findResource(AssetManager.java:83) jenkins-1 | 2026-10-23T16:47:58.846097263Z at jenkins.model.AssetManager.doDynamic(AssetManager.java:51) jenkins-1 | 2026-10-23T16:47:58.846098263Z at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source) jenkins-1 | 2026-10-23T16:47:58.846099305Z at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:469) jenkins-1 | 2026-10-23T16:47:58.846111055Z at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:482) jenkins-1 | 2026-10-23T16:47:58.846113555Z at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:218) jenkins-1 | 2026-10-23T16:47:58.846114763Z at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:140) jenkins-1 | 2026-10-23T16:47:58.846116013Z at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:622) jenkins-1 | 2026-10-23T16:47:58.846117180Z at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800) jenkins-1 | 2026-10-23T16:47:58.846118388Z Caused: jakarta.servlet.ServletException jenkins-1 | 2026-10-23T16:47:58.846119513Z at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:851) jenkins-1 | 2026-10-23T16:47:58.846120680Z at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938) jenkins-1 | 2026-10-23T16:47:58.846121805Z at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:590) jenkins-1 | 2026-10-23T16:47:58.846122930Z at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:800) jenkins-1 | 2026-10-23T16:47:58.846124096Z at org.kohsuke.stapler.Stapler.invoke(Stapler.java:938) jenkins-1 | 2026-10-23T16:47:58.846125180Z at org.kohsuke.stapler.Stapler.invoke(Stapler.java:721) jenkins-1 | 2026-10-23T16:47:58.846126305Z at org.kohsuke.stapler.Stapler.service(Stapler.java:253) jenkins-1 | 2026-10-23T16:47:58.846127430Z at Jenkins Main ClassLoader//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587) jenkins-1 | 2026-10-23T16:47:58.846128721Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHolder.handle(ServletHolder.java:783) jenkins-1 | 2026-10-23T16:47:58.846129971Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1670) jenkins-1 | 2026-10-23T16:47:58.846131263Z at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:200) jenkins-1 | 2026-10-23T16:47:58.846132430Z at jenkins.install.SetupWizard$1.doFilter(SetupWizard.java:781) jenkins-1 | 2026-10-23T16:47:58.846133555Z at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:197) jenkins-1 | 2026-10-23T16:47:58.846134638Z at jenkins.util.HttpServletFilter$1.doFilter(HttpServletFilter.java:77) jenkins-1 | 2026-10-23T16:47:58.846135596Z at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:197) jenkins-1 | 2026-10-23T16:47:58.846137346Z at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:203) jenkins-1 | 2026-10-23T16:47:58.846138346Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846139388Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846140430Z at jenkins.ErrorAttributeFilter.doFilter(ErrorAttributeFilter.java:29) jenkins-1 | 2026-10-23T16:47:58.846141388Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846142430Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846149971Z at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:159) jenkins-1 | 2026-10-23T16:47:58.846151846Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846152930Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846154013Z at jenkins.security.csp.impl.CspFilter.doFilter(CspFilter.java:83) jenkins-1 | 2026-10-23T16:47:58.846154971Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846156013Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846157055Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:94) jenkins-1 | 2026-10-23T16:47:58.846158013Z at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52) jenkins-1 | 2026-10-23T16:47:58.846159346Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846160305Z at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:54) jenkins-1 | 2026-10-23T16:47:58.846161305Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846162263Z at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) jenkins-1 | 2026-10-23T16:47:58.846163430Z at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) jenkins-1 | 2026-10-23T16:47:58.846164471Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846165471Z at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) jenkins-1 | 2026-10-23T16:47:58.846167055Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846168096Z at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:151) jenkins-1 | 2026-10-23T16:47:58.846169180Z at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:106) jenkins-1 | 2026-10-23T16:47:58.846170263Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846171263Z at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:245) jenkins-1 | 2026-10-23T16:47:58.846172430Z at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:239) jenkins-1 | 2026-10-23T16:47:58.846173555Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846174513Z at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:106) jenkins-1 | 2026-10-23T16:47:58.846176971Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846177971Z at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117) jenkins-1 | 2026-10-23T16:47:58.846179055Z at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) jenkins-1 | 2026-10-23T16:47:58.846180096Z at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:63) jenkins-1 | 2026-10-23T16:47:58.846181138Z at hudson.security.ChainedServletFilter2$1.doFilter(ChainedServletFilter2.java:99) jenkins-1 | 2026-10-23T16:47:58.846182138Z at hudson.security.ChainedServletFilter2.doFilter(ChainedServletFilter2.java:111) jenkins-1 | 2026-10-23T16:47:58.846183096Z at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:173) jenkins-1 | 2026-10-23T16:47:58.846184013Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846185055Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846186055Z at org.kohsuke.stapler.UncaughtExceptionFilter.doFilter(UncaughtExceptionFilter.java:26) jenkins-1 | 2026-10-23T16:47:58.846229055Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846234013Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846234805Z at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:85) jenkins-1 | 2026-10-23T16:47:58.846235555Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846236138Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846236721Z at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:31) jenkins-1 | 2026-10-23T16:47:58.846237263Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846237846Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846238388Z at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:38) jenkins-1 | 2026-10-23T16:47:58.846238930Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202) jenkins-1 | 2026-10-23T16:47:58.846239513Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) jenkins-1 | 2026-10-23T16:47:58.846240096Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler.doHandle(ServletHandler.java:526) jenkins-1 | 2026-10-23T16:47:58.846240638Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:125) jenkins-1 | 2026-10-23T16:47:58.846252346Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.security.SecurityHandler.handle(SecurityHandler.java:588) jenkins-1 | 2026-10-23T16:47:58.846253430Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.HandlerWrapper.handle(HandlerWrapper.java:124) jenkins-1 | 2026-10-23T16:47:58.846254055Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:195) jenkins-1 | 2026-10-23T16:47:58.846254638Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.SessionHandler.doHandle(SessionHandler.java:612) jenkins-1 | 2026-10-23T16:47:58.846255305Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:193) jenkins-1 | 2026-10-23T16:47:58.846256013Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doHandle(ContextHandler.java:1047) jenkins-1 | 2026-10-23T16:47:58.846256805Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:162) jenkins-1 | 2026-10-23T16:47:58.846356638Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler.doScope(ServletHandler.java:483) jenkins-1 | 2026-10-23T16:47:58.846358721Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160) jenkins-1 | 2026-10-23T16:47:58.846359346Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.SessionHandler.doScope(SessionHandler.java:589) jenkins-1 | 2026-10-23T16:47:58.846359888Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160) jenkins-1 | 2026-10-23T16:47:58.846360471Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doScope(ContextHandler.java:962) jenkins-1 | 2026-10-23T16:47:58.846361013Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:123) jenkins-1 | 2026-10-23T16:47:58.846361596Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.handle(ContextHandler.java:1738) jenkins-1 | 2026-10-23T16:47:58.846362138Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1586) jenkins-1 | 2026-10-23T16:47:58.846362721Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.HttpChannel.dispatch(HttpChannel.java:737) jenkins-1 | 2026-10-23T16:47:58.846363263Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.HttpChannel.handle(HttpChannel.java:520) jenkins-1 | 2026-10-23T16:47:58.846363930Z at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:3098) jenkins-1 | 2026-10-23T16:47:58.846364555Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1253) jenkins-1 | 2026-10-23T16:47:58.846365138Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:621) jenkins-1 | 2026-10-23T16:47:58.846365680Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.handle(Server.java:197) jenkins-1 | 2026-10-23T16:47:58.846366221Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:804) jenkins-1 | 2026-10-23T16:47:58.846368513Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:420) jenkins-1 | 2026-10-23T16:47:58.846369096Z at Jenkins Main ClassLoader//org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1790) jenkins-1 | 2026-10-23T16:47:58.846369680Z at Jenkins Main ClassLoader//org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) jenkins-1 | 2026-10-23T16:47:58.846370221Z at Jenkins Main ClassLoader//org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54) jenkins-1 | 2026-10-23T16:47:58.846370888Z at Jenkins Main ClassLoader//org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009) jenkins-1 | 2026-10-23T16:47:58.846371430Z at Jenkins Main ClassLoader//org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1240) jenkins-1 | 2026-10-23T16:47:58.846372013Z at Jenkins Main ClassLoader//org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194) jenkins-1 | 2026-10-23T16:47:58.846372555Z at java.base/java.lang.Thread.run(Unknown Source)