hub4j / github-api

Java API for GitHub
https://github-api.kohsuke.org/
MIT License
1.15k stars 728 forks source link

GitHub client is fragile with recent GitHub API flakiness #1728

Closed samrocketman closed 7 months ago

samrocketman commented 1 year ago

The bug is in the following lines of code

https://github.com/hub4j/github-api/blob/1cb9e66f7a762ad35f22a19ec854e2f8c4c6d45e/src/main/java/org/kohsuke/github/GitHubClient.java#L47-L52

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.

https://github.com/jenkinsci/scm-filter-jervis-plugin/commit/c21d0c1d936d1ab71d93aba7684e00fa68d6e67e#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 commented 1 year ago

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

bitwiseman commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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.(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.(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 commented 11 months ago

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 https://github.com/hub4j/github-api/issues/1728#issuecomment-1771970989 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 commented 11 months ago

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

samrocketman commented 11 months ago

@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 commented 11 months ago

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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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.(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 commented 11 months ago

@KeepItSimpleStupid I posted a diagram here https://github.com/hub4j/github-api/issues/1728#issuecomment-1771938828

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 commented 11 months ago

@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 commented 11 months ago

@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:

Would greatly improve my situation.

samrocketman commented 11 months ago

@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 commented 11 months ago

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

bitwiseman commented 11 months ago

@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 commented 11 months ago

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 commented 11 months ago

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

KeepItSimpleStupid commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

@samrocketman https://github.com/hub4j/github-api/issues/1756 - The changes caused test failures in GHBS. You'll need to install the change manually.

samrocketman commented 11 months ago

@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.

bitwiseman commented 11 months ago

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

bitwiseman commented 11 months ago

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

bitwiseman commented 11 months ago

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

KeepItSimpleStupid commented 11 months ago

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 https://github.com/hub4j/github-api/issues/1728#issuecomment-1771938828

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 commented 11 months ago

@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 commented 11 months ago

@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

bitwiseman commented 11 months ago

@samrocketman @KeepItSimpleStupid What's the word?

KeepItSimpleStupid commented 11 months ago

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

samrocketman commented 11 months ago

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

KeepItSimpleStupid commented 11 months ago

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.(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 commented 11 months ago

@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 commented 11 months ago

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 commented 11 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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

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 commented 10 months ago

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 commented 10 months ago

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 :grin: .

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

samrocketman commented 10 months ago

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

bitwiseman commented 10 months ago

What is the URL for the null rate limit errors?

samrocketman commented 10 months ago

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 commented 9 months ago

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 commented 7 months ago

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.