-
Bug
-
Resolution: Unresolved
-
Major
The plugins are currently updated in the alphabetical order, which can lead to problems if an earlier plugin (A) is dependent on a later plugin (B). If the A is updated, and the newer version expects the B plugin to be updated, too, but the update of the B plugin fails (for any reasons, e.g. network instability), the whole Jenkins may fail to (re)start.
Just happened to me today - the Git plugin has been updated to 5.8.0, which requires SCM API plugin version 710 or newer, but the update of SCM API has failed (alongside of some other plugins):
2025-10-09 07:03:44.294+0000 [id=602866] SEVERE h.model.UpdateCenter$DownloadJob#run: Failed to install scm-api java.net.SocketTimeoutException: Read timed out at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:278) at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:304) at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346) at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796) at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1099) at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:489) at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:483) at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70) at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1461) at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1066) at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:291) at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:347) at java.base/java.io.BufferedInputStream.implRead(BufferedInputStream.java:420) at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:399) at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:827) at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:759) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1705) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1614) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223) at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1365) Caused: java.io.IOException: Failed to load https://updates.jenkins.io/download/plugins/scm-api/712.v8846fdd68c88/scm-api.hpi to /local0/biologics/jenkins-core/jenkins_home/plugins/scm-api.jpi.tmp at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1380) Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/scm-api/712.v8846fdd68c88/scm-api.hpi → https://get.jenkins.io/plugins/scm-api/712.v8846fdd68c88/scm-api.hpi at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1407) at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:2059) at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2387) at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:2033) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121) at java.base/java.lang.Thread.run(Thread.java:1583)
This led to whole Jenkins failing to start, and I had to manually update the SCM API plugin via CLI plugin manager (this luckily worked).