When setting up a new Jenkins server with Swarm and use a review workflow the response to Swarm can sometimes fail due to hostname resolution or certificate errors.
From the console there is no indication that the Swarm notification has failed.
In the main Jenkins logger you see:
Feb 25, 2025 1:31:50 PM INFO org.jenkinsci.plugins.p4.review.ReviewNotifier postURLReviewNotifier: https://arghhhh/api/v10/testruns/83/pass/BD6771E0-B65A-C9B7-77E8-89C5D16A8E3F.v1/ url=http://MyJenkins:8080/job/project1SwarmFreestyle/53/
Feb 25, 2025 1:32:06 PM WARNING org.jenkinsci.plugins.p4.review.ReviewNotifier onCompletedUnable to Notify Review
But for the real error you need to look at Jenkins standard out at the OS:
$ journalctl ... Feb 25 13:31:50 MyJenkins jenkins[655]: 2025-02-25 13:31:50.871+0000 [id=42] INFO o.j.p.p4.review.ReviewNotifier#postURL: ReviewNotifier: https://arghhhh/api/v10/testruns>Feb 25 13:32:01 MyJenkins CRON[2086]: pam_unix(cron:session): session closed for user nobody Feb 25 13:32:06 MyJenkins jenkins[655]: 2025-02-25 13:32:06.009+0000 [id=42] WARNING o.j.p.p4.review.ReviewNotifier#onCompleted: Unable to Notify Review Feb 25 13:32:06 MyJenkins jenkins[655]: java.net.UnknownHostException: arghhhh Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/java.net.Socket.connect(Socket.java:609) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:305) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:507) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:602) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:373) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:207) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:193) Feb 25 13:32:06 MyJenkins jenkins[655]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168) Feb 25 13:32:06 MyJenkins jenkins[655]: at PluginClassLoader for p4//org.jenkinsci.plugins.p4.review.ReviewNotifier.postURL(ReviewNotifier.java:71) Feb 25 13:32:06 MyJenkins jenkins[655]: at PluginClassLoader for p4//org.jenkinsci.plugins.p4.review.ReviewNotifier.onCompleted(ReviewNotifier.java:51) Feb 25 13:32:06 MyJenkins jenkins[655]: at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:223) Feb 25 13:32:06 MyJenkins jenkins[655]: at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59) Feb 25 13:32:06 MyJenkins jenkins[655]: at jenkins.util.Listeners.notify(Listeners.java:67) Feb 25 13:32:06 MyJenkins jenkins[655]: at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:221) Feb 25 13:32:06 MyJenkins jenkins[655]: at hudson.model.Run.execute(Run.java:1935) Feb 25 13:32:06 MyJenkins jenkins[655]: at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) Feb 25 13:32:06 MyJenkins jenkins[655]: at hudson.model.ResourceController.execute(ResourceController.java:101) Feb 25 13:32:06 MyJenkins jenkins[655]: at hudson.model.Executor.run(Executor.java:446)
Reproduction Steps:
(1) Create a Freestyle job that syncs code from Perforce. Shelve a file in that codeline.
(2) Click 'Build review'.
(3) Fill in the fields but put an invalid URL in the pass and fail fields.
review: 1 change: 2 status: shelved pass: https://dont-exist.fail/api/v10/testruns/83/pass/BD6771E0-B65A-C9B7-77E8-89C5D16A8E3F.v1/ fail: pass: https://dont-exist.fail/api/v10/testruns/83/fail/BD6771E0-B65A-C9B7-77E8-89C5D16A8E3F.v1/
(4) Click Build.
No error is seen unless you go searching in the logger or Jenkins server standard out.