-
Improvement
-
Resolution: Fixed
-
Major
-
None
-
github-branch-source:1797.v86fdb_4d57d43
-
-
1815.v9152b_2ff7a_1b_
Noticed in a recent instance that the GitHubSCMNavigator was interrupted after failing to fetch a specific repository:
[Mon Mar 10 19:36:19 UTC 2025] Consulting GitHub Organization [...] Proposing myrepo ERROR: [Mon Mar 10 12:34:56 UTC 2025] Could not fetch sources from navigator org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator@XXXXXXXX [Mon Mar 10 19:36:49 UTC 2025] Finished organization scan. Scan took 29 sec FATAL: Failed to recompute children of topfolder ยป myorg java.io.FileNotFoundException: https://github.example.com/api/v3/repos/myorg/myrepo at PluginClassLoader for github-api//org.kohsuke.github.GitHubConnectorResponseErrorHandler$1.onError(GitHubConnectorResponseErrorHandler.java:68) at PluginClassLoader for github-api//org.kohsuke.github.GitHubClient.detectKnownErrors(GitHubClient.java:504) at PluginClassLoader for github-api//org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:464) Caused: org.kohsuke.github.GHFileNotFoundException: https://github.example.com/api/v3/repos/myorg/myrepo { "documentation_url": "https://docs.github.com/rest/repos/repos#get-a-repository", "message": "Not Found", "status": "404" } at PluginClassLoader for github-api//org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:735) at PluginClassLoader for github-api//org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:480) at PluginClassLoader for github-api//org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:427) at PluginClassLoader for github-api//org.kohsuke.github.Requester.fetch(Requester.java:85) at PluginClassLoader for github-api//org.kohsuke.github.GHRepository.read(GHRepository.java:149) at PluginClassLoader for github-api//org.kohsuke.github.GitHub.getRepository(GitHub.java:687) at PluginClassLoader for github-branch-source//org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:997) at PluginClassLoader for scm-api//jenkins.scm.api.SCMSource._retrieve(SCMSource.java:372) at PluginClassLoader for scm-api//jenkins.scm.api.SCMSource.fetch(SCMSource.java:326) at PluginClassLoader for branch-api//jenkins.branch.MultiBranchProjectFactory$BySCMSourceCriteria.recognizes(MultiBranchProjectFactory.java:262) at PluginClassLoader for branch-api//jenkins.branch.OrganizationFolder$SCMSourceObserverImpl$1.recognizes(OrganizationFolder.java:1356) at PluginClassLoader for branch-api//jenkins.branch.OrganizationFolder$SCMSourceObserverImpl$1.complete(OrganizationFolder.java:1371) at PluginClassLoader for scm-api//jenkins.scm.api.trait.SCMNavigatorRequest.process(SCMNavigatorRequest.java:252) at PluginClassLoader for scm-api//jenkins.scm.api.trait.SCMNavigatorRequest.process(SCMNavigatorRequest.java:202) at PluginClassLoader for github-branch-source//org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator.visitSources(GitHubSCMNavigator.java:1145) at PluginClassLoader for branch-api//jenkins.branch.OrganizationFolder.computeChildren(OrganizationFolder.java:530) at PluginClassLoader for cloudbees-folder//com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:269) at PluginClassLoader for cloudbees-folder//com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:167) at PluginClassLoader for branch-api//jenkins.branch.OrganizationFolder$OrganizationScan.run(OrganizationFolder.java:915) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:447)
The failure on a single repository interrupts everything. The Organization is not resilient to such kind of issues. It could be improved to skip the failing repo and carry on.