Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub client is fragile with recent GitHub API flakiness #1728

Closed
samrocketman opened this issue Oct 17, 2023 · 46 comments
Closed

GitHub client is fragile with recent GitHub API flakiness #1728

samrocketman opened this issue Oct 17, 2023 · 46 comments

Comments

@samrocketman
Copy link

samrocketman commented Oct 17, 2023

The bug is in the following lines of code

/** The Constant CONNECTION_ERROR_RETRIES. */
static final int CONNECTION_ERROR_RETRIES = 2;
/**
* If timeout issues let's retry after milliseconds.
*/
static final int retryTimeoutMillis = 100;

It will only retry twice with 200ms in between retries.

Why this is a bug

GitHub branch source Jenkins plugin will drop builds occasionally from received webhooks. The GHBS plugin relies on GitHub plugin which relies on github-api plugin which provides this library as a client. Here's an exception from multibranch pipeline events.

[Mon Oct 16 14:31:28 GMT 2023] Received Push event to branch master in repository REDACTED UPDATED event from REDACTED ⇒ https://jenkins-webhooks.REDACTED.com/github-webhook/ with timestamp Mon Oct 16 14:31:22 GMT 2023
14:31:26 Connecting to https://api.github.com using GitHub app
ERROR: Ran out of retries for URL: https://api.github.com/repos/REDACTED
org.kohsuke.github.GHIOException: Ran out of retries for URL: https://api.github.com/repos/REDACTED
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:456)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:403)
	at org.kohsuke.github.Requester.fetch(Requester.java:85)
	at org.kohsuke.github.GHRepository.read(GHRepository.java:145)
	at org.kohsuke.github.GitHub.getRepository(GitHub.java:684)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1005)
	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:372)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:326)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.processHeadUpdate(MultiBranchProject.java:1614)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.onSCMHeadEvent(MultiBranchProject.java:1218)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:246)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:229)
	at jenkins.scm.api.SCMEvent$Dispatcher.run(SCMEvent.java:545)
	at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:67)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

How many retries should it be?

In practice, rolling out this patch from another plugin not using this library but does interact with GitHub I've seen GitHub API retried 28 times over the course of 1 minute. The retry limit for this was 30 and sleeping randomly between 1000 and 3000 ms. I've since increased the retry cap to 60 in my production system for this plugin.

jenkinsci/scm-filter-jervis-plugin@c21d0c1#diff-46da075f8e1e17ccf594a86bc96e8c8eaf295617b81d5ae5206634e37021bb49R119-R122

Ideal solution

You can keep the same retries but I would like this to be tunable by the user via system properties on the fly. That means do not use static properties except as a default value.

Integer minInterval = Integer.getInteger(GitHubClient.class.getName() + ".minRetryInterval", retryTimeoutMillis);
Integer maxInterval = Integer.getInteger(GitHubClient.class.getName() + ".maxRetryInterval", retryTimeoutMillis) + 1;
Integer retryLimit = Integer.getInteger(GitHubClient.class.getName() + ".retryLimit", CONNECTION_ERROR_RETRIES);

And for sleeping between retries I would like it to be random instead of a fixed value.

// import java.util.concurrent.ThreadLocalRandom
    private static void logRetryConnectionError(IOException e, URL url, int retries) throws IOException {
        Integer minInterval = Integer.getInteger(GitHubClient.class.getName() + ".minRetryInterval", retryTimeoutMillis);
        Integer maxInterval = Integer.getInteger(GitHubClient.class.getName() + ".maxRetryInterval", retryTimeoutMillis) + 1;
        Integer sleepyTime = ThreadLocalRandom.current().nextLong(minInterval, maxInterval);
        // There are a range of connection errors where we want to wait a moment and just automatically retry
        LOGGER.log(INFO,
                e.getMessage() + " while connecting to " + url + ". Sleeping " + sleepyTime
                        + " milliseconds before retrying... ; will try " + retryLimit + " more time(s)");
        try {
            Thread.sleep(sleepyTime);
        } catch (InterruptedException ie) {
            throw (IOException) new InterruptedIOException().initCause(e);
        }
    }

This should have a sane default but allow clients to tune them on the fly. Random delay between retries is a cloud best practice for interacting with distributed systems. See also https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/

@samrocketman
Copy link
Author

I plan to propose a patch for this as well but going to let this bug report get reviewed before I do anything.

@bitwiseman
Copy link
Member

I have no objection to tuning the retries via system properties.

Still, I'm surprised that that the retries are needed - the whole retry functionality was originally added to try to deal with flakiness in the Java 8 URLConnection. In my original testing, okhttp seemed to not have this issue or handled this problem internally.

@samrocketman
Copy link
Author

samrocketman commented Oct 20, 2023

I’ve been running similar Jenkins infrastructure for the past 6 years without issue. But the past 4 months seems like GitHub is changing something on their end to manage the outages. Jenkins reliability has gone down in my instance for processing builds.

REST usage has been a challenge as well. We actually get dropped builds pretty regularly due to the amount of fragility of relying on the REST APIs. Through debugging I’ve created a diagram to highlight problematic areas with red arrows. I’ve been rolling out internal patches to address it and some I have surfaced in plugins. I am going to open more patches as I find time (off hours).

@samrocketman
Copy link
Author

samrocketman commented Oct 20, 2023

Here’s some new articles; we’re heavily hitting secondary rate limit with github autostatus plugin (I am removing next maintenance) and with github branch source plugin.

We’ve recently started getting shared pipeline clone failures too (Git is now getting more limited) but I was able to solve that with the caching feature of groovy shared libraries config. All that’s to say, the need for tuning against GitHub seems like it is going up.

/rate_limit appears to be hit a lot (several times a second) by GitHub branch source plugin on our instance. I haven’t graphed the frequency.

@bitwiseman
Copy link
Member

@samrocketman
Thanks for detailed information. It definitely sounds like we need to update the core flow.

I'm particularly surprised that /rate_limit is hit a lot. ... Perhaps the improved rate limit checking that I implemented in this library weren't wired up in the branch source plugin?

@samrocketman
Copy link
Author

I could implement debug logging again and try to get a feel for the frequency. I'll let you know this coming week. I will try to get you some hard stats (number of jobs, frequency of incoming hooks, and try to get a feel for frequency)

Rate limit API is always hit in two scenarios. Where there is legitimate rate limit checking and on the GitHub App credential type when it checks to see if the credential is valid. It is the second type that is most frequent because Jenkins appears to check if the credential is valid a lot.

@samrocketman
Copy link
Author

Here's another example of flakiness which happens quite often and before you run out of API limit.

You have exceeded a secondary rate limit (click to see exception)
hudson.remoting.ProxyException: org.eclipse.egit.github.core.client.RequestException: You have exceeded a secondary rate limit. Please wait a few minutes before you try again. If you reach out to GitHub Support for help, please include the request ID 9F17:6070:1643F2F:2D7C58F:653AAC18. (403)
	at org.eclipse.egit.github.core.client.GitHubClient.createException(GitHubClient.java:622)
	at org.eclipse.egit.github.core.client.GitHubClient.get(GitHubClient.java:815)
	at org.jenkinsci.plugins.pipeline.github.client.ExtendedGitHubClient.getUnchecked(ExtendedGitHubClient.java:79)
	at org.jenkinsci.plugins.pipeline.github.client.ExtendedPullRequestService.getPullRequest(ExtendedPullRequestService.java:80)
	at org.jenkinsci.plugins.pipeline.github.PullRequestGroovyObject.<init>(PullRequestGroovyObject.java:82)
	at org.jenkinsci.plugins.pipeline.github.PullRequestGlobalVariable.getValue(PullRequestGlobalVariable.java:30)
	at org.jenkinsci.plugins.workflow.cps.CpsScript.getProperty(CpsScript.java:137)
	at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:310)
	at writePullRequestComment.writePRComment(writePullRequestComment.groovy:16)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
	at org.jenkinsci.plugins.workflow.cps.LoggingInvoker.methodCall(LoggingInvoker.java:105)
Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: fd8bd6de-bf16-4333-8750-7db144f2af8f
Caused: hudson.remoting.ProxyException: java.io.UncheckedIOException: org.eclipse.egit.github.core.client.RequestException: You have exceeded a secondary rate limit. Please wait a few minutes before you try again. If you reach out to GitHub Support for help, please include the request ID 9F17:6070:1643F2F:2D7C58F:653AAC18. (403)
	at org.jenkinsci.plugins.pipeline.github.client.ExtendedGitHubClient.getUnchecked(ExtendedGitHubClient.java:81)
	at org.jenkinsci.plugins.pipeline.github.client.ExtendedPullRequestService.getPullRequest(ExtendedPullRequestService.java:80)
	at org.jenkinsci.plugins.pipeline.github.PullRequestGroovyObject.<init>(PullRequestGroovyObject.java:82)
	at org.jenkinsci.plugins.pipeline.github.PullRequestGlobalVariable.getValue(PullRequestGlobalVariable.java:30)
	at org.jenkinsci.plugins.workflow.cps.CpsScript.getProperty(CpsScript.java:137)
	at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:310)
	at writePullRequestComment.writePRComment(writePullRequestComment.groovy:16)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
	at org.jenkinsci.plugins.workflow.cps.LoggingInvoker.methodCall(LoggingInvoker.java:105)
	at writePullRequestComment.call(writePullRequestComment.groovy:22)
	at Script1.runCanaryAnalysisHelper(Script1.groovy:169)
	at Script1.runCanaryAnalysis(Script1.groovy:122)
	at Script1.run(Script1.groovy:20)
	at deployStage.deployFromAgent(deployStage.groovy:84)
	at deployStage.ephemeralCredentials(deployStage.groovy:67)
	at assumeIamRole.call(assumeIamRole.groovy:276)
	at withEnvSecretWrapper.withEnvSecretWrapper(withEnvSecretWrapper.groovy:27)
	at ___cps.transform___(Native Method)
	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:90)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:116)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:85)
	at jdk.internal.reflect.GeneratedMethodAccessor851.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
	at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
	at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
	at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
	at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
	at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)
	at com.cloudbees.groovy.cps.Next.step(Next.java:83)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:152)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:146)
	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:146)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:423)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:331)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:295)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:97)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

@KeepItSimpleStupid
Copy link
Contributor

Hi @samrocketman @bitwiseman,

Our Jenkins instance is also particularly impacted by this new Github rate limiting since 1 month.

We already applied some workarounds like the one suggested in #1728 (comment) to cache shared libraries, but even with that, around 15/20% of our builds still fail.

Did you make any progress on this or did you find a workaround ?
We didn't really experiment the NoThrottle config on the github-branch-source-plugin, and are still using ThrottleOnOver because I didn't fully understand the impact and if this change was promising or not.

Anyway, we're ready to help on the investigation & fix, if you have any clue !

Thanks a lot,

@bitwiseman
Copy link
Member

@samrocketman @KeepItSimpleStupid
What is the rest of the log output for the exception? The nested exception may hold more information...

@samrocketman
Copy link
Author

@KeepItSimpleStupid you don't want to use NoThrottle because it checks credential validity against the meta API endpoint. I found out it ate through my entire API limit when I configured it. So when I discovered that paired with other comments I switched back to ThrottleOnOver. Still not ideal but its credential check behaves a bit better (it prob shouldn't attempt a check at all once configured but this is a different matter).

@KeepItSimpleStupid
Copy link
Contributor

Thanks for the explanation @samrocketman :)

@bitwiseman : here are some logs extracted from our Jenkins Controller

Jenkins controller logs
2023-11-16 06:18:40.425+0000 [id=1510]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:18:41.777+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:18:42.803+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:18:45.635+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:46.345+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:47.391+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:48.056+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:48.767+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:49.431+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:49.563+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:50.537+0000 [id=1510]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:51.883+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:18:52.914+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:05.765+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:06.470+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:07.512+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:08.183+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:08.894+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:09.558+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:09.686+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:10.650+0000 [id=1510]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:12.010+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:13.041+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:15.868+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:16.580+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:17.623+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:18.294+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:19.006+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:19.670+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:19.797+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:20.762+0000 [id=1510]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:22.129+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:23.148+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:35.999+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:36.709+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:37.748+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:38.419+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:39.131+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 06:19:46.107+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:46.820+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:47.859+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:48.530+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:19:49.241+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 06:20:56.435+0000 [id=35092]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 06:51:33.529+0000 [id=35412]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 06:51:38.293+0000 [id=35453]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 07:13:41.464+0000 [id=35640]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 07:35:58.072+0000 [id=35968]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 07:47:23.529+0000 [id=36322]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 07:47:33.641+0000 [id=36322]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 07:47:43.752+0000 [id=36322]	WARNING	jenkins.util.Listeners#lambda$notify$0
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::cockpit and branch: PR-1749
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.lambda$onCompleted$0(BuildStatusChecksPublisher.java:188)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.onCompleted(BuildStatusChecksPublisher.java:188)
	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
	at jenkins.util.Listeners.notify(Listeners.java:67)
	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 07:51:42.153+0000 [id=36364]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 07:51:46.727+0000 [id=36409]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:05:21.785+0000 [id=36584]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:07:32.216+0000 [id=36693]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:09:56.887+0000 [id=36774]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:14:37.824+0000 [id=36905]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:17:25.430+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:17:35.541+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:17:55.691+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:18:05.794+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:18:15.899+0000 [id=36973]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:431)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:628)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:447)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:148)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:366)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1318)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1639)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::android-app and branch: release-4.2
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 08:18:26.109+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:18:36.220+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:18:56.362+0000 [id=36973]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:19:16.585+0000 [id=36973]	WARNING	jenkins.util.Listeners#lambda$notify$0
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:431)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:628)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:447)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:148)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:366)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1318)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1639)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::android-app and branch: release-4.2
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.lambda$onCompleted$0(BuildStatusChecksPublisher.java:188)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.onCompleted(BuildStatusChecksPublisher.java:188)
	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
	at jenkins.util.Listeners.notify(Listeners.java:67)
	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 08:19:26.621+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:19:36.732+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:19:56.857+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:27:52.313+0000 [id=37043]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:40:23.207+0000 [id=37233]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:42:42.057+0000 [id=37324]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:45:08.912+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:08.955+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:09.883+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:10.831+0000 [id=1510]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:11.317+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:11.918+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:12.513+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:12.682+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:13.493+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:13.880+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:19.014+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:19.056+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:20.004+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:20.939+0000 [id=1510]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:21.428+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:22.029+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:22.630+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:22.787+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:23.605+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:23.991+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:45:39.167+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:45:49.278+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:46:09.414+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:46:19.524+0000 [id=1365]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:46:39.664+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:46:49.776+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:47:09.910+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:47:20.020+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:47:40.162+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:47:50.267+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:48:10.410+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:48:20.521+0000 [id=2536]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:48:40.665+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:48:50.777+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:49:10.913+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:49:21.024+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:49:41.160+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 08:49:51.271+0000 [id=1515]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 08:50:14.712+0000 [id=37507]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:50:26.045+0000 [id=37524]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:50:26.071+0000 [id=37525]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 08:56:34.300+0000 [id=37861]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:02:27.228+0000 [id=38245]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:02:27.255+0000 [id=38246]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:06:10.187+0000 [id=38437]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:09:53.202+0000 [id=38521]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:13:40.804+0000 [id=38674]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:15:17.371+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:15:27.472+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:15:55.054+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:15:57.340+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:16:05.165+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:16:07.452+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:16:12.314+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:16:22.425+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:16:42.568+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:16:52.679+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:17:12.811+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:17:22.922+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:17:43.061+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:17:53.170+0000 [id=1509]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:18:13.300+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:18:23.404+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:18:43.545+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:18:53.653+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:19:13.790+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:19:23.899+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:19:44.030+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:19:54.141+0000 [id=1508]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:20:15.082+0000 [id=38790]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:20:25.165+0000 [id=38807]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:22:33.582+0000 [id=38967]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:31:59.754+0000 [id=39582]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:32:12.130+0000 [id=39600]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:32:41.582+0000 [id=39643]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:32:41.606+0000 [id=39644]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:33:41.791+0000 [id=39645]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:44:35.714+0000 [id=40163]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:46:36.093+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:47:02.452+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:47:22.574+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:47:32.704+0000 [id=1472]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:47:52.825+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:48:02.948+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:48:23.065+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:48:33.185+0000 [id=1511]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:48:53.308+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:49:03.427+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:49:23.549+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:49:33.681+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 09:49:53.805+0000 [id=40302]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 09:51:41.645+0000 [id=40453]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 09:57:00.746+0000 [id=40578]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:11:05.689+0000 [id=41158]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:12:09.781+0000 [id=41230]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:15:08.998+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:15:10.900+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:15:13.894+0000 [id=41461]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:15:19.100+0000 [id=1491]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:15:21.022+0000 [id=1471]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:20:15.947+0000 [id=41695]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:25:26.150+0000 [id=41987]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:32:30.574+0000 [id=42449]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:33:36.362+0000 [id=42523]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:41:28.386+0000 [id=42862]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:45:37.654+0000 [id=42982]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:45:40.662+0000 [id=43005]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:45:47.756+0000 [id=42982]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:45:50.777+0000 [id=43005]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:45:56.391+0000 [id=43052]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:46:00.889+0000 [id=43005]	WARNING	jenkins.util.Listeners#lambda$notify$0
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::cockpit and branch: PR-1776
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.lambda$onCompleted$0(BuildStatusChecksPublisher.java:188)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.onCompleted(BuildStatusChecksPublisher.java:188)
	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
	at jenkins.util.Listeners.notify(Listeners.java:67)
	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 10:46:06.496+0000 [id=43052]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:46:16.607+0000 [id=43052]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: PR-145
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 10:47:18.925+0000 [id=43088]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:47:29.028+0000 [id=43088]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:48:54.335+0000 [id=43103]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:48:58.626+0000 [id=43053]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:49:04.447+0000 [id=43103]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:49:08.738+0000 [id=43053]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:49:18.849+0000 [id=43053]	WARNING	jenkins.util.Listeners#lambda$notify$0
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: PR-145
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.lambda$onCompleted$0(BuildStatusChecksPublisher.java:188)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.onCompleted(BuildStatusChecksPublisher.java:188)
	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
	at jenkins.util.Listeners.notify(Listeners.java:67)
	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 10:49:33.872+0000 [id=43103]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 10:49:43.983+0000 [id=43103]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 10:56:21.850+0000 [id=43322]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:56:21.878+0000 [id=43323]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 10:58:26.029+0000 [id=43453]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 11:15:07.150+0000 [id=44145]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:15:07.290+0000 [id=43431]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:15:17.251+0000 [id=44145]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:15:17.391+0000 [id=43431]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: timeout while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:15:27.376+0000 [id=44145]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: master
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:15:27.503+0000 [id=43431]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: PR-145
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:15:37.444+0000 [id=44291]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:15:37.556+0000 [id=44145]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:15:47.556+0000 [id=44291]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:15:47.667+0000 [id=44145]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:15:57.686+0000 [id=44291]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: master
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:15:57.777+0000 [id=44145]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: PR-145
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:16:07.698+0000 [id=44291]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:16:07.788+0000 [id=44145]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:16:17.809+0000 [id=44291]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:16:17.899+0000 [id=44145]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/rate_limit. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:16:27.940+0000 [id=44291]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: master
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:16:28.010+0000 [id=44145]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: PR-145
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:16:38.024+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:16:48.135+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:17:08.266+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:17:18.376+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:17:28.497+0000 [id=44123]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:431)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:628)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:447)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:148)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:366)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1318)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1639)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: master
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:17:38.509+0000 [id=44343]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:17:48.620+0000 [id=44343]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:18:08.751+0000 [id=44343]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:18:18.862+0000 [id=44343]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:18:38.999+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:18:49.110+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:19:09.252+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:19:19.363+0000 [id=44123]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:19:29.486+0000 [id=44123]	WARNING	o.j.p.w.cps.CpsFlowExecution#notifyListeners
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:431)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:628)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:447)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:148)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:366)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1318)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1639)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::client-analytics and branch: master
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.lambda$onNewHead$0(BuildStatusChecksPublisher.java:244)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$ChecksGraphListener.onNewHead(BuildStatusChecksPublisher.java:244)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:19:39.498+0000 [id=44331]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 2 more time(s)
2023-11-16 11:19:49.605+0000 [id=44331]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: Connect timed out while connecting to https://api.github.com/. Sleeping 100 milliseconds before retrying... ; will try 1 more time(s)
2023-11-16 11:19:59.950+0000 [id=44331]	WARNING	jenkins.util.Listeners#lambda$notify$0
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:431)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:628)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:447)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:148)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:366)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1318)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1639)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::cockpit and branch: PR-1781
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.lambda$onCompleted$0(BuildStatusChecksPublisher.java:188)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.onCompleted(BuildStatusChecksPublisher.java:188)
	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
	at jenkins.util.Listeners.notify(Listeners.java:67)
	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-11-16 11:20:00.095+0000 [id=44374]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 11:27:16.793+0000 [id=44640]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 11:39:16.858+0000 [id=45050]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 11:51:30.779+0000 [id=45287]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-11-16 11:51:35.626+0000 [id=45237]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.

On the Jenkins agent side, it materializes as possible timeouts or errors for all actions involving our GitHub app credentials and the GitHub API : checkouts, publishing github checks, tagging a commit, etc
Some examples

Jenkins agent git checkout failures
10:46:03  The recommended git tool is: NONE
10:46:05  using credential github-app
10:46:05  Cloning the remote Git repository
10:46:05  Using shallow clone with depth 100
10:46:05  Honoring refspec on initial clone
10:46:05  Cloning repository https://github.com/Libon/libon-helm.git
10:46:05   > git init /home/jenkins/agent/workspace/Libon_libon-helm_master # timeout=10
10:46:05  Fetching upstream changes from https://github.com/Libon/libon-helm.git
10:46:05   > git --version # timeout=10
10:46:05   > git --version # 'git version 2.39.2'
10:46:05  using GIT_ASKPASS to set credentials GitHub app
10:46:05   > git fetch --tags --force --progress --depth=100 -- https://github.com/Libon/libon-helm.git +refs/heads/master:refs/remotes/origin/master # timeout=30
10:48:17  ERROR: Error cloning remote repo 'origin'
10:48:17  hudson.plugins.git.GitException: Command "git fetch --tags --force --progress --depth=100 -- https://github.com/Libon/libon-helm.git +refs/heads/master:refs/remotes/origin/master" returned status code 128:
10:48:17  stdout: 
10:48:17  stderr: fatal: unable to access 'https://github.com/Libon/libon-helm.git/': Failed to connect to github.com port 443 after 131620 ms: Couldn't connect to server
10:48:17  
10:48:17  	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2842)
10:48:17  	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2185)
10:48:17  	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:635)
10:48:17  	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:871)
10:48:17  	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:170)
10:48:17  	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:161)
10:48:17  	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
10:48:17  	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
10:48:17  	at hudson.remoting.Request$2.run(Request.java:377)
10:48:17  	at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
10:48:17  	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
10:48:17  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
10:48:17  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
10:48:17  	at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:137)
10:48:17  	at java.base/java.lang.Thread.run(Unknown Source)
Jenkins agent publishing github checks
12:15:18  hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com/, skipping
12:15:18  	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
12:15:18  	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
12:15:18  	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
12:15:18  	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
12:15:18  Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: e4a1f73b-5061-4efa-9620-a1546c7aadad
12:15:18  Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::cockpit and branch: PR-1775
12:15:18  	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
12:15:18  	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
12:15:18  	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
12:15:18  	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
12:15:18  	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
12:15:18  	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
12:15:18  	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
12:15:18  	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
12:15:18  	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
12:15:18  	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
12:15:18  	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
12:15:18  	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
12:15:18  	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
12:15:18  	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
12:15:18  	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
12:15:18  	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
12:15:18  	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
12:15:18  	at io.jenkins.plugins.coverage.metrics.steps.CoverageChecksPublisher.publishCoverageReport(CoverageChecksPublisher.java:86)
12:15:18  	at io.jenkins.plugins.coverage.metrics.steps.CoverageRecorder.perform(CoverageRecorder.java:425)
12:15:18  	at io.jenkins.plugins.coverage.metrics.steps.CoverageRecorder.perform(CoverageRecorder.java:397)
12:15:18  	at io.jenkins.plugins.coverage.metrics.steps.CoverageStep$Execution.run(CoverageStep.java:364)
12:15:18  	at io.jenkins.plugins.coverage.metrics.steps.CoverageStep$Execution.run(CoverageStep.java:332)
12:15:18  	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
12:15:18  	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
12:15:18  	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
12:15:18  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
12:15:18  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
12:15:18  	at java.base/java.lang.Thread.run(Thread.java:833)
Jenkins agent git tag with GitHub API
14:43:55  HttpMethod: POST
14:43:55  URL: https://api.github.com/repos/libon/web-portal/git/tags
14:43:55  Using authentication: github-app
14:43:55  Sending request to url: https://api.github.com/repos/libon/web-portal/git/tags
14:46:07  Treating class org.apache.http.conn.HttpHostConnectException(Connect to api.github.com:443 [api.github.com/140.82.121.6] failed: Connection timed out (Connection timed out)) as 408 Request Timeout
14:46:07  Response: 
14:46:07  class org.apache.http.conn.HttpHostConnectException(Connect to api.github.com:443 [api.github.com/140.82.121.6] failed: Connection timed out (Connection timed out)) as 408 Request Timeout
...
14:46:08  hudson.AbortException: Fail: Status code 408 is not in the accepted range: 100:399 while calling https://api.github.com/repos/libon/web-portal/git/tags
14:46:08  	at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:470)
14:46:08  	at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:480)
14:46:08  	at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:376)
14:46:08  	at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:284)
14:46:08  Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from 10.104.1.3/10.104.1.3:43168
14:46:08  		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)
14:46:08  		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
14:46:08  		at hudson.remoting.Channel.call(Channel.java:1000)
14:46:08  		at jenkins.plugins.http_request.HttpRequestStep$Execution.run(HttpRequestStep.java:404)
14:46:08  		at jenkins.plugins.http_request.HttpRequestStep$Execution.run(HttpRequestStep.java:383)
14:46:08  		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
14:46:08  		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
14:46:08  		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
14:46:08  		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
14:46:08  		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
14:46:08  		at java.base/java.lang.Thread.run(Thread.java:829)
14:46:08  Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 63520f0e-be8d-4eba-99e2-2c324adec853
14:46:08  Caused: java.lang.IllegalStateException
14:46:08  	at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:287)
14:46:08  	at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:80)
14:46:08  	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
14:46:08  	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
14:46:08  	at hudson.remoting.Request$2.run(Request.java:377)
14:46:08  	at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
14:46:08  	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
14:46:08  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
14:46:08  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
14:46:08  	at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:125)
14:46:08  	at java.base/java.lang.Thread.run(Unknown Source)
14:46:10  [GitHub Checks] GitHub check (name: Jenkins, status: completed) has been published.
14:46:10  Finished: FAILURE

It should be possible to have more verbose logs for both this lib and the Jenkins GitHub Branch Source plugin, let me know !

@samrocketman
Copy link
Author

samrocketman commented Nov 17, 2023

@KeepItSimpleStupid I posted a diagram here #1728 (comment)

  • Invalid scan credentials… skipping is the third red vertical line (from left to right) connecting to GitHub

For unknown reason, the app continuously checks its own validity using the rate limit API and gets throttled by GitHub. Method Connector.isCredentialValid is called often and is likely the cause of my performance issues (aside from being able to tweak this library retry behavior).

I am considering releasing an internal fork of GHBS to hardcode return true for this.

@bitwiseman
Copy link
Member

@samrocketman
We could improve matters from the github-api side by changing getRateLimit() and getMeta() to cache results for some configurable number of seconds.

If a consumer queries those endpoints more than once per second, the client is doing something wrong and the github-api library should mitigate that behavior. How does that sound?

Separately, if possible, whatever functionality GHBS is trying to provide with its isCredentialValid() should be moved to github-api and GHBS should switch back to using GitHub.isCredentialValid(). But that is a later change once we halt the spamming.

@samrocketman
Copy link
Author

@bitwiseman this would definitely improve things. I think being able to tweak the retries is important too because once you get to a certain size (10s of thousands of jobs) I've found that inevitably I need to tweak how Jenkins interacts with GitHub from an API client perspective. I've been overhauling internally what I can but these two changes:

  • your suggestion to cache credential validity
  • be able to tweak retry count, min time between retry, max time between retry and randomize between min-max to spread load

Would greatly improve my situation.

@samrocketman
Copy link
Author

samrocketman commented Nov 19, 2023

@bitwiseman in particular it is this line which gets called excessively; should this be updated on GHBS? https://github.com/jenkinsci/github-branch-source-plugin/blob/7bec28752f4d250713a28dfe08fff4ebb7e4ee35/src/main/java/org/jenkinsci/plugins/github_branch_source/Connector.java#L557

I don't understand why isCredentialValid would need to be called at all; I can understand validating the credentials upon first configuration but once it is already configured they should just be assumed valid. The user will find out they're invalid if they get revoked (i.e. they'll get permission denied errors in logs).

Here's where it gets called the most https://github.com/jenkinsci/github-branch-source-plugin/blob/90e17c48a6accf2a1a0f189131607261c84e304a/src/main/java/org/jenkinsci/plugins/github_branch_source/GitHubSCMNavigator.java#L950-L952

These are similar logs that @KeepItSimpleStupid shared as well

From user perspective

How users see this is a dropped webhook. They open a PR and builds never start because a PR job is never created; the MBP couldn't find "valid" credentials and so skips creating the job for the ref.

In the case of users, they have to manually close and re-open the PR to try again with another webhook.

Even worse when this happens with Tag pipelines. A tag pipeline will not get created and the only resolution is a GitHub admin "replaying" the webhook of the tag push event. Users can't resend these events themselves so this creates excessive support burden on internal GH teams.

Overall the above adds to the perception that our services are poorly managed internally which is why I'm pushing out internal patches to hard-code these areas.

@samrocketman
Copy link
Author

I've edited the above comments a few times; just mentioning I'm done editing it

@bitwiseman
Copy link
Member

@bitwiseman in particular it is this line which gets called excessively; should this be updated on GHBS? https://github.com/jenkinsci/github-branch-source-plugin/blob/7bec28752f4d250713a28dfe08fff4ebb7e4ee35/src/main/java/org/jenkinsci/plugins/github_branch_source/Connector.java#L557

I'd say yes. Basically, whatever clever things GHBS is doing should be done on the github-api side in isCredentialValid().

I don't understand why isCredentialValid would need to be called at all; I can understand validating the credentials upon first configuration but once it is already configured they should just be assumed valid. The user will find out they're invalid if they get revoked (i.e. they'll get permission denied errors in logs).

There's a lot about the SCM class structure design that is overly complex, which results in some odd/poor behavior. I could (and have previously) spent way too much time debugging and cleaning up GHBS code. Often I found the design of SCM classes themselves prevented deeper clean up.

Here's where it gets called the most https://github.com/jenkinsci/github-branch-source-plugin/blob/90e17c48a6accf2a1a0f189131607261c84e304a/src/main/java/org/jenkinsci/plugins/github_branch_source/GitHubSCMNavigator.java#L950-L952

These are similar logs that @KeepItSimpleStupid shared as well

From user perspective

How users see this is a dropped webhook. They open a PR and builds never start because a PR job is never created; the MBP couldn't find "valid" credentials and so skips creating the job for the ref.

In the case of users, they have to manually close and re-open the PR to try again with another webhook.

Even worse when this happens with Tag pipelines. A tag pipeline will not get created and the only resolution is a GitHub admin "replaying" the webhook of the tag push event. Users can't resend these events themselves so this creates excessive support burden on internal GH teams.

Overall the above adds to the perception that our services are poorly managed internally which is why I'm pushing out internal patches to hard-code these areas.

I'm sorry to hear you're having to push out internal patches to stabilize your system. Hopefully the updates I'm doing in #1744 will address these, or otherwise allow you to mitigate them more easily.

@samrocketman
Copy link
Author

No worries, @bitwiseman I didn't mean to come off as complaining. I think Jenkins code complexity is a good reason why something like this could happen.

I think my confusion stemmed from thinking it was intentional design but your point is valid it couldn't have been intended. It's pretty clear I'm also hitting up against the edges of performance which means I will hit edge case bugs most will not.

So reporting (and at times trying to fix) issues like this hopefully make Jenkins and supporting libs overall better for all.

@samrocketman
Copy link
Author

I can close this issue once I verify its release of github-api plugin

@KeepItSimpleStupid
Copy link
Contributor

I just deployed the incremental build 1.318-454.v6624edb_76df9 of the github-api plugin in our infra : I will let you know the results in a few days.
Thanks again !

@samrocketman
Copy link
Author

Since plugin is released I'll close this; I'll report back my usage here and if any issues I'll re-open. Thanks @bitwiseman

@bitwiseman
Copy link
Member

@samrocketman
#1756 - The changes caused test failures in GHBS. You'll need to install the change manually.

@samrocketman
Copy link
Author

@bitwiseman when you mean manually are you referring to downloading the HPI? Currently, I install plugins via maven (group/artifact/version) instead of JUC.

If the artifact is still available in https://repo.jenkins-ci.org I should be able to install it fine. WRT test failures does this mean it won't be published to JUC?

For the time being I'll reopen this issue until a release is GA for others.

@samrocketman samrocketman reopened this Nov 26, 2023
@bitwiseman
Copy link
Member

bitwiseman commented Nov 26, 2023

The new version is still available in maven, I think it is just excluded from JUC.

@bitwiseman
Copy link
Member

This change is available in JUC (jenkinsci/bom#2694) . Please wait to close until you've tried it locally and can report results.

@bitwiseman
Copy link
Member

@samrocketman @KeepItSimpleStupid
Any updates? I'm very interested to hear what effect the changes had.

@KeepItSimpleStupid
Copy link
Contributor

Hi @bitwiseman !

Unfortunately, I don't see any improvement in our infrastructure for the moment : still similar amounts of org.kohsuke.github.GitHubClient#logRetryConnectionError per day in our Jenkins controller logs :/

I'll try to find some time tomorrow to enable some debug logs to trace every requests made by our Jenkins instance to the GitHub APIs and better understand what's going on, in a similar way that @samrocketman did in #1728 (comment)

Less than 15 developers use our Jenkins instance every day (+ some automation with Renovate/Dependabot) so we can't say our usage is extraordinary : all of that is really strange !

@bitwiseman
Copy link
Member

@KeepItSimpleStupid
😭 Darn. Please provide the Jenkins controller log like you did previously. There should be some improved logging even for that.

Speaking of which, your previous logs only showed a few cases where your were querying more than once per second, so it would make sense that you haven't seen much difference. Hm...

@samrocketman
Copy link
Author

samrocketman commented Dec 1, 2023

@KeepItSimpleStupid are you customizing the startup properties? There's a few you need to set to benefit from the PR fixes

It's the retrying with random delays that will help.

Set

  • retry limit to 60
  • minimum delay 1 second
  • maximum delay 3 seconds

@bitwiseman
Copy link
Member

bitwiseman commented Dec 7, 2023

@samrocketman @KeepItSimpleStupid
What's the word?

@KeepItSimpleStupid
Copy link
Contributor

I'm sorry, guys, some emergencies to handle on my side these last days : I'll give you a more detailed feedback tonight !

@samrocketman
Copy link
Author

I plan to roll this out within the next two weeks and report back.

@KeepItSimpleStupid
Copy link
Contributor

So here are some fresh logs (curated), more detailed now thanks to what you added in the pull request ;)

Jenkins controller logs
2023-12-07 17:15:17.070+0000 [id=1212]	WARNING	o.k.g.e.a.JwtBuilderUtil#createBuilderImpl: You are using an outdated version of the io.jsonwebtoken:jjwt-* suite. v0.12.x or later is recommended.
2023-12-07 17:15:27.903+0000 [id=1252]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 17:15:27.972+0000 [id=1253]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 17:16:17.532+0000 [id=1206]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.113 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:19.415+0000 [id=1206]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/libon-ios-app from 140.82.115.123 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:36.443+0000 [id=17]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.34 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:37.291+0000 [id=17]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.112 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:38.323+0000 [id=15]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.95 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:38.451+0000 [id=14]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.26 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:39.578+0000 [id=14]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.254 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:39.674+0000 [id=15]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.113 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:40.042+0000 [id=15]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.246 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:40.691+0000 [id=14]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.123 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:16:40.912+0000 [id=15]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.80 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:19:14.029+0000 [id=17]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/libon-ios-app from 140.82.115.40 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:19:14.254+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/libon-ios-app from 140.82.115.45 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:19:49.876+0000 [id=14]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.25 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:19:53.831+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/libon-ios-app from 140.82.115.243 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:04.015+0000 [id=18]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/libon-ios-app from 140.82.115.28 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:04.116+0000 [id=1195]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.33 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:10.489+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.89 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:11.645+0000 [id=1195]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.33 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:12.612+0000 [id=18]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.112 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:13.278+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.25 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:14.255+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.113 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:14.595+0000 [id=1195]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.45 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:14.693+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.101 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:15.502+0000 [id=1195]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.111 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:15.540+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.29 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:20.291+0000 [id=18]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.80 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:21.677+0000 [id=18]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.80 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:23.284+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.33 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:23.625+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.25 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:24.978+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.80 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:25.335+0000 [id=19]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.82 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:25.660+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.38 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:20:27.120+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.26 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:21:33.028+0000 [id=1545]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (2e77cb53) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 17:32:50.753+0000 [id=14]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/cockpit from 140.82.115.109 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:38:18.420+0000 [id=2073]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/server-txtr from 140.82.115.123 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 17:38:44.851+0000 [id=2101]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 17:38:44.880+0000 [id=2102]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 17:43:12.990+0000 [id=1196]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux-pr-helmreleases from 140.82.115.51 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 18:39:32.540+0000 [id=2925]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/android-app from 140.82.115.123 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 18:40:02.936+0000 [id=3016]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 18:40:02.974+0000 [id=3017]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 19:53:31.773+0000 [id=3594]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.89 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 19:53:35.440+0000 [id=3595]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.26 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 19:53:39.969+0000 [id=3595]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux from 140.82.115.89 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 19:53:46.811+0000 [id=1374]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (327e5114) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:53:56.923+0000 [id=1374]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (327e5114) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (1 retries remaining)
2023-12-07 19:54:07.037+0000 [id=1374]	WARNING	o.j.p.g.GitHubAppCredentials#getToken: Failed to generate new GitHub App Installation Token for app ID 225917: cached token is stale but has not expired
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:461)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/app
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:669)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:478)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.Requester.fetch(Requester.java:85)
	at org.kohsuke.github.GitHub.getApp(GitHub.java:1189)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:216)
Caused: java.lang.IllegalArgumentException: Couldn't authenticate with GitHub app ID 225917
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:218)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.getToken(GitHubAppCredentials.java:287)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials$CredentialsTokenProvider.getEncodedAuthorization(GitHubAppCredentials.java:197)
	at org.kohsuke.github.GitHubClient.getEncodedAuthorization(GitHubClient.java:267)
	at org.kohsuke.github.GitHubClient.prepareConnectorRequest(GitHubClient.java:542)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:455)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:159)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:390)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1321)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:983)
	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:372)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:326)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.processHeadUpdate(MultiBranchProject.java:1705)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.onSCMHeadEvent(MultiBranchProject.java:1218)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:246)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:229)
	at jenkins.scm.api.SCMEvent$Dispatcher.run(SCMEvent.java:545)
	at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:67)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
2023-12-07 19:54:17.064+0000 [id=1374]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (327e5114) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:54:27.076+0000 [id=1374]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (56be3347) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:54:37.188+0000 [id=1374]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (56be3347) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (1 retries remaining)
2023-12-07 19:54:47.313+0000 [id=1374]	WARNING	o.j.p.g.GitHubAppCredentials#getToken: Failed to generate new GitHub App Installation Token for app ID 225917: cached token is stale but has not expired
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:461)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/app
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:669)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:478)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.Requester.fetch(Requester.java:85)
	at org.kohsuke.github.GitHub.getApp(GitHub.java:1189)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:216)
Caused: java.lang.IllegalArgumentException: Couldn't authenticate with GitHub app ID 225917
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:218)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.getToken(GitHubAppCredentials.java:287)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials$CredentialsTokenProvider.getEncodedAuthorization(GitHubAppCredentials.java:197)
	at org.kohsuke.github.GitHubClient.getEncodedAuthorization(GitHubClient.java:267)
	at org.kohsuke.github.GitHubClient.prepareConnectorRequest(GitHubClient.java:542)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:455)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.GitHubClient.isPrivateModeEnabled(GitHubClient.java:810)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:392)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1321)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:983)
	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:372)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:326)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.processHeadUpdate(MultiBranchProject.java:1705)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.onSCMHeadEvent(MultiBranchProject.java:1218)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:246)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:229)
	at jenkins.scm.api.SCMEvent$Dispatcher.run(SCMEvent.java:545)
	at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:67)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
2023-12-07 19:54:57.325+0000 [id=1374]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (56be3347) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:55:07.337+0000 [id=1386]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (bfa760b) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:55:17.468+0000 [id=1386]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (bfa760b) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (1 retries remaining)
2023-12-07 19:55:27.578+0000 [id=1386]	WARNING	o.j.p.g.GitHubAppCredentials#getToken: Failed to generate new GitHub App Installation Token for app ID 225917: cached token is stale but has not expired
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:461)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/app
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:669)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:478)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.Requester.fetch(Requester.java:85)
	at org.kohsuke.github.GitHub.getApp(GitHub.java:1189)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:216)
Caused: java.lang.IllegalArgumentException: Couldn't authenticate with GitHub app ID 225917
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:218)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.getToken(GitHubAppCredentials.java:287)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials$CredentialsTokenProvider.getEncodedAuthorization(GitHubAppCredentials.java:197)
	at org.kohsuke.github.GitHubClient.getEncodedAuthorization(GitHubClient.java:267)
	at org.kohsuke.github.GitHubClient.prepareConnectorRequest(GitHubClient.java:542)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:455)
	at org.kohsuke.github.GitHubClient.fetch(GitHubClient.java:159)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:390)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1321)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:983)
	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:372)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:326)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.processHeadUpdate(MultiBranchProject.java:1614)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.onSCMHeadEvent(MultiBranchProject.java:1218)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:246)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:229)
	at jenkins.scm.api.SCMEvent$Dispatcher.run(SCMEvent.java:545)
	at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:67)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
2023-12-07 19:55:37.590+0000 [id=1386]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (bfa760b) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:55:47.631+0000 [id=1386]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7489b841) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 19:55:57.743+0000 [id=1386]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7489b841) class java.net.SocketTimeoutException while connecting to https://api.github.com/app: 'Connect timed out'. Sleeping 100 milliseconds before retrying (1 retries remaining)
2023-12-07 19:56:07.855+0000 [id=1386]	WARNING	o.j.p.g.GitHubAppCredentials#getToken: Failed to generate new GitHub App Installation Token for app ID 225917: cached token is stale but has not expired
java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$UnexpectedException.lambda$static$0(ObsoleteUrlFactory.java:1364)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponse(ObsoleteUrlFactory.java:670)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$OkHttpURLConnection.getResponseCode(ObsoleteUrlFactory.java:701)
	at org.kohsuke.github.extras.okhttp3.ObsoleteUrlFactory$DelegatingHttpsURLConnection.getResponseCode(ObsoleteUrlFactory.java:1063)
	at org.kohsuke.github.internal.GitHubConnectorHttpConnectorAdapter.send(GitHubConnectorHttpConnectorAdapter.java:87)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:461)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/app
	at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:669)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:478)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.Requester.fetch(Requester.java:85)
	at org.kohsuke.github.GitHub.getApp(GitHub.java:1189)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:216)
Caused: java.lang.IllegalArgumentException: Couldn't authenticate with GitHub app ID 225917
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.generateAppInstallationToken(GitHubAppCredentials.java:218)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials.getToken(GitHubAppCredentials.java:287)
	at org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials$CredentialsTokenProvider.getEncodedAuthorization(GitHubAppCredentials.java:197)
	at org.kohsuke.github.GitHubClient.getEncodedAuthorization(GitHubClient.java:267)
	at org.kohsuke.github.GitHubClient.prepareConnectorRequest(GitHubClient.java:542)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:455)
	at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427)
	at org.kohsuke.github.GitHubClient.isPrivateModeEnabled(GitHubClient.java:810)
	at org.kohsuke.github.GitHubClient.checkApiUrlValidity(GitHubClient.java:392)
	at org.kohsuke.github.GitHub.checkApiUrlValidity(GitHub.java:1321)
	at org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker.verifyConnection(ApiRateLimitChecker.java:194)
	at org.jenkinsci.plugins.github_branch_source.Connector$GitHubConnection.verifyConnection(Connector.java:723)
	at org.jenkinsci.plugins.github_branch_source.Connector.connect(Connector.java:420)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:983)
	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:372)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:326)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.processHeadUpdate(MultiBranchProject.java:1614)
	at jenkins.branch.MultiBranchProject$SCMEventListenerImpl.onSCMHeadEvent(MultiBranchProject.java:1218)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:246)
	at jenkins.scm.api.SCMHeadEvent$DispatcherImpl.fire(SCMHeadEvent.java:229)
	at jenkins.scm.api.SCMEvent$Dispatcher.run(SCMEvent.java:545)
	at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:67)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
2023-12-07 19:56:24.155+0000 [id=3710]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 19:56:24.231+0000 [id=3711]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 20:07:10.022+0000 [id=3922]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 20:07:33.002+0000 [id=3941]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 20:07:43.137+0000 [id=3965]	INFO	o.j.p.g.ApiRateLimitChecker$RateLimitCheckerAdapter#checkRateLimit: LocalChecker for rate limit was not set for this thread. Configured using system settings with API URL 'https://api.github.com'.
2023-12-07 20:15:46.742+0000 [id=3595]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux-pr-helmreleases from 140.82.115.26 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 20:16:39.432+0000 [id=3440]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux-pr-helmreleases from 140.82.115.61 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 20:17:59.554+0000 [id=3513]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux-pr-helmreleases from 140.82.115.89 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 20:19:27.451+0000 [id=3609]	INFO	o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/libon/gitops-flux-pr-helmreleases from 140.82.115.152 ⇒ https://jenkins.build.libon.com/github-webhook/
2023-12-07 20:23:53.601+0000 [id=4495]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (a2321f6) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 100 milliseconds before retrying (2 retries remaining)
2023-12-07 20:24:03.714+0000 [id=4495]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (a2321f6) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 100 milliseconds before retrying (1 retries remaining)
2023-12-07 20:24:13.826+0000 [id=4495]	WARNING	jenkins.util.Listeners#lambda$notify$0
hudson.AbortException: Invalid scan credentials GitHub app to connect to https://api.github.com, skipping
	at org.jenkinsci.plugins.github_branch_source.Connector.checkConnectionValidity(Connector.java:588)
	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1642)
	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:581)
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:159)
Caused: java.lang.IllegalStateException: Could not fetch revision from repository: org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator::https://api.github.com::Libon::cockpit and branch: PR-1831
	at io.jenkins.plugins.checks.github.SCMFacade.findRevision(SCMFacade.java:162)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.resolveHeadSha(GitHubSCMSourceChecksContext.java:131)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.<init>(GitHubSCMSourceChecksContext.java:46)
	at io.jenkins.plugins.checks.github.GitHubSCMSourceChecksContext.fromRun(GitHubSCMSourceChecksContext.java:24)
	at io.jenkins.plugins.checks.github.GitHubChecksPublisherFactory.createPublisher(GitHubChecksPublisherFactory.java:48)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.lambda$fromRun$0(ChecksPublisherFactory.java:89)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1856)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:92)
	at io.jenkins.plugins.checks.api.ChecksPublisherFactory.fromRun(ChecksPublisherFactory.java:69)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.lambda$onCompleted$0(BuildStatusChecksPublisher.java:188)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.jenkins.plugins.checks.status.BuildStatusChecksPublisher$JobCompletedListener.onCompleted(BuildStatusChecksPublisher.java:188)
	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
	at jenkins.util.Listeners.notify(Listeners.java:67)
	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1557)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Then, to answer to @samrocketman : I didn't customize anything (yet), I was hoping that the sanity caching would be more than enough for our usage which seems far less intensive than yours, but it seems I was wrong.
I'll apply your suggested values tomorrow morning and see how it goes !

Thanks again to both of you, I'll make sure to give feedback more quickly about my next iterations :)

@samrocketman
Copy link
Author

@KeepItSimpleStupid specifically if you want it to apply at boot then you can pass the following JVM options

-Dorg.kohsuke.github.GitHubClient.minRetryInterval=1000
-Dorg.kohsuke.github.GitHubClient.maxRetryInterval=3000
-Dorg.kohsuke.github.GitHubClient.retryCount=60

Or from the script console on the fly without restarting

System.setProperty("org.kohsuke.github.GitHubClient.minRetryInterval", "1000")
System.setProperty("org.kohsuke.github.GitHubClient.maxRetryInterval", "3000")
System.setProperty("org.kohsuke.github.GitHubClient.retryCount", "60")

The way Liam wrote that should work.

@KeepItSimpleStupid
Copy link
Contributor

KeepItSimpleStupid commented Dec 8, 2023

Deployed this morning by customizing the Jenkins helm chart with the value controller.javaOpts

controller:
   javaOpts: >-
    -Dorg.kohsuke.github.GitHubClient.minRetryInterval=1000
    -Dorg.kohsuke.github.GitHubClient.maxRetryInterval=3000
    -Dorg.kohsuke.github.GitHubClient.retryCount=60

I will give more feedback later, but first occurrences seem to be OK : we stopped before the 60 retries

Jenkins controller logs
2023-12-08 09:06:00.523+0000 [id=1220]	WARNING	o.k.g.e.a.JwtBuilderUtil#createBuilderImpl: You are using an outdated version of the io.jsonwebtoken:jjwt-* suite. v0.12.x or later is recommended.
2023-12-08 09:22:24.837+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2151 milliseconds before retrying (60 retries remaining)
2023-12-08 09:22:37.000+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1123 milliseconds before retrying (59 retries remaining)
2023-12-08 09:22:48.135+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1564 milliseconds before retrying (58 retries remaining)
2023-12-08 09:22:59.723+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1592 milliseconds before retrying (57 retries remaining)
2023-12-08 09:23:11.327+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2914 milliseconds before retrying (56 retries remaining)
2023-12-08 09:23:24.253+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1939 milliseconds before retrying (55 retries remaining)
2023-12-08 09:23:36.216+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2002 milliseconds before retrying (54 retries remaining)
2023-12-08 09:23:48.229+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1194 milliseconds before retrying (53 retries remaining)
2023-12-08 09:23:59.437+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2669 milliseconds before retrying (52 retries remaining)
2023-12-08 09:24:12.131+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2543 milliseconds before retrying (51 retries remaining)
2023-12-08 09:24:24.684+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2149 milliseconds before retrying (50 retries remaining)
2023-12-08 09:24:36.845+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1447 milliseconds before retrying (49 retries remaining)
2023-12-08 09:24:48.318+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1953 milliseconds before retrying (48 retries remaining)
2023-12-08 09:25:00.283+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1731 milliseconds before retrying (47 retries remaining)
2023-12-08 09:25:12.026+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2404 milliseconds before retrying (46 retries remaining)
2023-12-08 09:25:24.457+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2798 milliseconds before retrying (45 retries remaining)
2023-12-08 09:25:37.267+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1380 milliseconds before retrying (44 retries remaining)
2023-12-08 09:25:48.659+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2038 milliseconds before retrying (43 retries remaining)
2023-12-08 09:26:00.725+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2993 milliseconds before retrying (42 retries remaining)
2023-12-08 09:26:13.730+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1014 milliseconds before retrying (41 retries remaining)
2023-12-08 09:26:24.756+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 1334 milliseconds before retrying (40 retries remaining)
2023-12-08 09:26:36.112+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2724 milliseconds before retrying (39 retries remaining)
2023-12-08 09:26:48.848+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2105 milliseconds before retrying (38 retries remaining)
2023-12-08 09:27:00.966+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2622 milliseconds before retrying (37 retries remaining)
2023-12-08 09:27:13.613+0000 [id=1700]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (7ef18c85) class java.net.SocketTimeoutException while connecting to https://api.github.com/: 'Connect timed out'. Sleeping 2451 milliseconds before retrying (36 retries remaining)
2023-12-08 09:52:50.503+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1097 milliseconds before retrying (60 retries remaining)
2023-12-08 09:53:01.612+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1650 milliseconds before retrying (59 retries remaining)
2023-12-08 09:53:13.274+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1152 milliseconds before retrying (58 retries remaining)
2023-12-08 09:53:24.462+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2404 milliseconds before retrying (57 retries remaining)
2023-12-08 09:53:36.877+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2675 milliseconds before retrying (56 retries remaining)
2023-12-08 09:53:49.564+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2671 milliseconds before retrying (55 retries remaining)
2023-12-08 09:54:02.262+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1823 milliseconds before retrying (54 retries remaining)
2023-12-08 09:54:14.117+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2269 milliseconds before retrying (53 retries remaining)
2023-12-08 09:54:26.399+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2256 milliseconds before retrying (52 retries remaining)
2023-12-08 09:54:38.745+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1888 milliseconds before retrying (51 retries remaining)
2023-12-08 09:54:50.644+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1699 milliseconds before retrying (50 retries remaining)
2023-12-08 09:55:02.355+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2230 milliseconds before retrying (49 retries remaining)
2023-12-08 09:55:14.610+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2187 milliseconds before retrying (48 retries remaining)
2023-12-08 09:55:26.808+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1605 milliseconds before retrying (47 retries remaining)
2023-12-08 09:55:38.425+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2033 milliseconds before retrying (46 retries remaining)
2023-12-08 09:55:50.486+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1520 milliseconds before retrying (45 retries remaining)
2023-12-08 09:56:02.018+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1739 milliseconds before retrying (44 retries remaining)
2023-12-08 09:56:13.769+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1855 milliseconds before retrying (43 retries remaining)
2023-12-08 09:56:25.640+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1113 milliseconds before retrying (42 retries remaining)
2023-12-08 09:56:36.760+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1994 milliseconds before retrying (41 retries remaining)
2023-12-08 09:56:48.765+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 1519 milliseconds before retrying (40 retries remaining)
2023-12-08 09:57:00.334+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2630 milliseconds before retrying (39 retries remaining)
2023-12-08 09:57:13.011+0000 [id=2659]	INFO	org.kohsuke.github.GitHubClient#logRetryConnectionError: (18802f81) class java.net.SocketTimeoutException while connecting to https://api.github.com/rate_limit: 'Connect timed out'. Sleeping 2709 milliseconds before retrying (38 retries remaining)   

@samrocketman
Copy link
Author

samrocketman commented Dec 8, 2023

That checks out based on my experience. Here’s info about secondary limits https://docs.github.com/en/rest/overview/rate-limits-for-the-rest-api?apiVersion=2022-11-28#about-secondary-rate-limits

And upon reading Jenkins easily uses up 900 points per minute at times for REST. So retrying taking over a minute kind of makes sense. Mine would retry up to 29 times. Looks like yours stops around 22 retries.

@KeepItSimpleStupid
Copy link
Contributor

Oh ! I was aware of these secondary limits, but didn't know about this "point system".

I was still really surprised that our common Jenkins usage triggers such severe rate limiting on GitHub side so I spent some time today to collect Github audit log of API requests
... And it was worth it !

I discovered that a small in-house workload (it displays the version of the components deployed in our different environments and their GitHub release notes) was triggering 1000+ requests in the same second to the GitHub API, and doing that every 30 minutes.
After each volley of requests, I was able to observe our now-common org.kohsuke.github.GitHubClient#logRetryConnectionError logs in our Jenkins controller logs for 5 minutes as shown in my previous comment.

I stopped the in-house workload at the end of the morning, and didn't observe a single occurrence in our Jenkins controller logs since :)

This in-house workload authenticates with a technical Github account, and not with the same GitHub app used by our Jenkins instance, but both are hosted in the same Kubernetes cluster, and so use the same source IP to request the GitHub API : i suppose that the in-house workload was triggering some secondary limits based on the source IP, and so our Jenkins instance was just a collateral damage of this bad behavior.

I'll wait to observe the behavior during some weekdays with our real Jenkins usage and report here.

Thanks again @bitwiseman @samrocketman, even if Jenkins was not the culprit for my use case, the enhancements to this library and the discussions with you really helped me to finally get to the bottom of it !

@samrocketman
Copy link
Author

samrocketman commented Dec 11, 2023

Since I bake our infrastructure I decided to bake the tuning properties into init.groovy.d Jenkins hook scripts. That's one of the advantages of being able to tune this on the fly @bitwiseman ; static properties cannot be modified with init.groovy.d because it happens too late in the JVM startup. It reduces the amount of JVM tuning options I have to pass.

Here's my startup script $JENKINS_HOME/init.groovy.d/boot_77_github-api_client_tuning.groovy

/**
  Tune github-api client https://github.com/hub4j/github-api/issues/1728#issuecomment-1846337277

  defaults: minRetryInterval=100, maxRetryInterval=100, retryCount=2
*/
System.setProperty("org.kohsuke.github.GitHubClient.minRetryInterval", "1000")
System.setProperty("org.kohsuke.github.GitHubClient.maxRetryInterval", "3000")
System.setProperty("org.kohsuke.github.GitHubClient.retryCount", "60")

/**
  Tune scm-filter-jervis plugin client
  https://github.com/jenkinsci/scm-filter-jervis-plugin/blob/80e28289ede66fa18553b4e0ca5f518a4bd782bc/src/main/groovy/net/gleske/scmfilter/impl/trait/JervisFilterTrait.groovy#L55-L79

  defaults: minRetryInterval=1000, maxRetryInterval=3000, retryLimit=30
  */
//System.setProperty("net.gleske.scmfilter.impl.trait.JervisFilterTrait.minRetryInterval", "1000")
//System.setProperty("net.gleske.scmfilter.impl.trait.JervisFilterTrait.maxRetryInterval", "3000")
System.setProperty("net.gleske.scmfilter.impl.trait.JervisFilterTrait.retryLimit", "60")

@samrocketman
Copy link
Author

samrocketman commented Dec 14, 2023

This evening after some testing I've rolled the lib out to production.

  • I've verified while there's logs for 10-15 events per second that rate_limit API is only hit once per second.
  • I'm still collecting information to share;

One thing I notice is that the GitHub checks plugin https://plugins.jenkins.io/github-checks/ still inconsistently submits the Jenkins context. For example, it will submit a pending context to the commit with log links to GitHub checks but when the build completes the GitHub checks status shows pending after build is no longer running. I'm still investigating this to make sure I have everything set up correctly.

Screenshot

Screenshot taken at 2023-12-13_19-42-37

@samrocketman
Copy link
Author

samrocketman commented Dec 14, 2023

I've narrowed down the likely problematic area to https://github.com/jenkinsci/github-checks-plugin/blob/c3c161b5f741f921d818a76d10698a5e260d5255/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisher.java#L81-L82 with a source review. I've enabled debug logs for this class.

I'm having trouble reviewing exactly how GitHubClient is used but somehow it does not appear to be using the retry logic. Hopefully, I'll learn more as debug logs come in.

@samrocketman
Copy link
Author

I will say that this last bit (GitHub checks) is merely a UI bug for my users now. They just get a little confused when it doesn't vote back but they're not blocked. Your retry logic fixes the critical issue of jobs not getting created at all in MBP which is huge 😁 .

I'll keep this open to track fixes for GitHub checks plugin, though.

@samrocketman
Copy link
Author

I notice lots of (7e0e663e) Missing or malformed X-RateLimit header: X-RateLimit-Limit: null in logs

@bitwiseman
Copy link
Member

What is the URL for the null rate limit errors?

@samrocketman
Copy link
Author

samrocketman commented Dec 15, 2023

Here's a few examples from today

2023-12-15 15:25:01.100+0000 [id=1354381]       FINER   org.kohsuke.github.GitHubClient#logResponse: (332cf569) GitHub API response: https://api.github.com/app
2023-12-15 15:25:01.100+0000 [id=1354381]       FINER   org.kohsuke.github.GitHubClient#noteRateLimit: (332cf569) Missing or malformed X-RateLimit header: X-RateLimit-Limit: null
2023-12-15 15:25:01.101+0000 [id=1354381]       FINE    org.kohsuke.github.GitHubClient#logRequest: (35bf107a) GitHub API request: GET https://api.github.com/app/installations
2023-12-15 15:25:01.158+0000 [id=1354381]       FINER   org.kohsuke.github.GitHubClient#logResponse: (35bf107a) GitHub API response: https://api.github.com/app/installations
2023-12-15 15:25:01.158+0000 [id=1354381]       FINER   org.kohsuke.github.GitHubClient#noteRateLimit: (35bf107a) Missing or malformed X-RateLimit header: X-RateLimit-Limit: null
2023-12-15 15:25:01.159+0000 [id=1354381]       FINE    org.kohsuke.github.GitHubClient#logRequest: (3c31430e) GitHub API request: POST https://api.github.com/app/installations/REDACTED_ID/access_tokens
2023-12-15 15:25:01.254+0000 [id=1354381]       FINER   org.kohsuke.github.GitHubClient#logResponse: (3c31430e) GitHub API response: https://api.github.com/app/installations/REDACTED_ID/access_tokens
2023-12-15 15:25:01.254+0000 [id=1354381]       FINER   org.kohsuke.github.GitHubClient#noteRateLimit: (3c31430e) Missing or malformed X-RateLimit header: X-RateLimit-Limit: null

However, I keep 1000 copies of debug logs (and use system logrotate and gzip to compress logs daily) so I have the logs from yesterday when I made that comment as well. This is so I can keep 30 days of debug logs for investigations and not run out of storage (compression is absolutely necessary).

Here's the logs from yesterday around the time I noted the issue.

2023-12-14 17:35:13.195+0000 [id=563751]        FINER   org.kohsuke.github.GitHubClient#logResponse: (5ee9ab96) GitHub API response: https://api.github.com/repos/REDACT_ORG/REDACT_REPO
2023-12-14 17:35:13.195+0000 [id=563751]        FINER   org.kohsuke.github.GitHubClient#noteRateLimit: (5ee9ab96) Missing or malformed X-RateLimit header: X-RateLimit-Limit: null

All of the errors from yesterday's comment were associated with the /repos/[org]/[name] endpoint. It was inconsistently missing but happened quite frequent. In UTC time I see it occurring from Dec 13 23:33 through right now.

From Dec 13 23:33 UTC-0 through to now it malformed X-RateLimit appears 7788 times. In the past 24 hours it appears 7123 times.

Source:

# using support plugin
cd /var/lib/logs/custom
find . -type f -mtime -1 -print0 | xargs -0 zgrep -F 'malformed X-RateLimit' | wc -l
7123

zgrep -F 'malformed X-RateLimit' * | wc -l
7788

It only occurs in org.kohsuke.github.GitHubClient

@samrocketman
Copy link
Author

samrocketman commented Feb 5, 2024

An update, our stability has significantly improved. There's still occasional flakiness with GitHub checks plugin not submitting its own commit status (e.g. still in progress after job finishes). But overall, developer interruption is resolved.

@samrocketman
Copy link
Author

I’m going to call this resolved. The inability for GH checks to add status is rare and probably not worth chasing. Thanks for providing tunable options.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants