Title: listSyncAndWatch failed for route.openshift encountered for BulkDependentResource with activationCondition downstream of a failing reconcilePrecondition · Issue #3271 · operator-framework/java-operator-sdk · GitHub
Open Graph Title: listSyncAndWatch failed for route.openshift encountered for BulkDependentResource with activationCondition downstream of a failing reconcilePrecondition · Issue #3271 · operator-framework/java-operator-sdk
X Title: listSyncAndWatch failed for route.openshift encountered for BulkDependentResource with activationCondition downstream of a failing reconcilePrecondition · Issue #3271 · operator-framework/java-operator-sdk
Description: Bug Report Follow on from #3249. I believe that the change made for #3249 was, unfortunately, not adequate. In the case where the Bulk Dependent Resource is an optional API (such as OpenShift Route), if the code is run on a platform with...
Open Graph Description: Bug Report Follow on from #3249. I believe that the change made for #3249 was, unfortunately, not adequate. In the case where the Bulk Dependent Resource is an optional API (such as OpenShift Route...
X Description: Bug Report Follow on from #3249. I believe that the change made for #3249 was, unfortunately, not adequate. In the case where the Bulk Dependent Resource is an optional API (such as OpenShift Route...
Opengraph URL: https://github.com/operator-framework/java-operator-sdk/issues/3271
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"listSyncAndWatch failed for route.openshift encountered for BulkDependentResource with activationCondition downstream of a failing reconcilePrecondition","articleBody":"## Bug Report\n\nFollow on from https://github.com/operator-framework/java-operator-sdk/issues/3249. I believe that the change made for #3249 was, unfortunately, not adequate.\n\nIn the case where the Bulk Dependent Resource is an _optional_ API (such as OpenShift Route), if the code is run on a platform without support for the API (i.e minikube), the Operator fails with a exception whilst trying to start the informer for the API. This happens despite the fact that the Dependent Resource is annotated with an activation condition that will return false.\n\n\nThere's a reproducer https://github.com/k-wall/java-operator-sdk/tree/issue-3271\n\n\u003c!--\nThanks for filing an issue! Before hitting the button, please answer these questions.\nFill in as much of the template below as you can. If you leave out information, we can't help you as well.\n\nNote: Make sure to first check the prerequisites that can be found in the main README.md file!\n--\u003e\n\n#### What did you do?\n\n\u003c!-- A clear and concise description of the steps you took (or insert a code snippet). --\u003e\nAttached test case demonstrates the issue.\n\n\n#### What did you expect to see?\n\nNormal operator startup. The intent is that the dependency is ignored on platforms that don't have the OpenShift Route API\n\n#### What did you see instead? Under which circumstances?\n\nError message in Operator log.\n\n```\n2026-04-06 15:59:24,290 52 i.f.k.c.i.i.c.Reflector [ERROR] listSyncAndWatch failed for route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes, will stop p:[::] e:[::::] \njava.util.concurrent.CompletionException: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://192.168.66.3:8443/apis/route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes?resourceVersion=0. Message: Not Found.\n\tat java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)\n\tat java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)\n\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649)\n\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)\n\tat java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2179)\n\tat io.fabric8.kubernetes.client.http.StandardHttpClient.lambda$completeOrCancel$10(StandardHttpClient.java:141)\n\tat java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)\n\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)\n\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)\n\tat java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2179)\n\tat io.fabric8.kubernetes.client.utils.AsyncUtils.lambda$retryWithExponentialBackoff$3(AsyncUtils.java:91)\n\tat java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)\n\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)\n\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)\n\tat java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)\n\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844)\n\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)\n\tat java.base/java.util.concurrent.ForkJoinTask.doExec$$$capture(ForkJoinTask.java:387)\n\tat java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java)\n\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)\n\tat java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)\n\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)\n\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)\nCaused by: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://192.168.66.3:8443/apis/route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes?resourceVersion=0. Message: Not Found.\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.requestFailure(OperationSupport.java:642)\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.requestFailure(OperationSupport.java:622)\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.assertResponseCode(OperationSupport.java:582)\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.lambda$handleResponse$0(OperationSupport.java:549)\n\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)\n\t... 20 more\n2026-04-06 15:59:24,291 52 i.j.o.a.c.ConfigurationService [DEBUG] Informer stopped: route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes. Has synced: false, Error: java.util.concurrent.CompletionException: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://192.168.66.3:8443/apis/route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes?resourceVersion=0. Message: Not Found.. This can happen as a result of stopping the controller, or due to an error on startup.See also stopOnInformerErrorDuringStartup configuration. p:[::] e:[::::] \n2026-04-06 15:59:24,291 53 i.j.o.p.e.s.i.InformerWrapper [ERROR] Informer startup error. Operator will be stopped. Informer: route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes p:[::] e:[::::] \njava.util.concurrent.ExecutionException: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://192.168.66.3:8443/apis/route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes?resourceVersion=0. Message: Not Found.\n\tat java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)\n\tat java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)\n\tat io.javaoperatorsdk.operator.processing.event.source.informer.InformerWrapper.start(InformerWrapper.java:115)\n\tat io.javaoperatorsdk.operator.processing.event.source.informer.InformerManager.lambda$start$0(InformerManager.java:82)\n\tat io.javaoperatorsdk.operator.api.config.ExecutorServiceManager.lambda$executeAndWaitForAllToComplete$0(ExecutorServiceManager.java:85)\n\tat java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://192.168.66.3:8443/apis/route.openshift.io/v1/namespaces/bulkactivationconditionit-nodedeleteexecutorshouldnotthro-41eb6/routes?resourceVersion=0. Message: Not Found.\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.requestFailure(OperationSupport.java:642)\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.requestFailure(OperationSupport.java:622)\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.assertResponseCode(OperationSupport.java:582)\n\tat io.fabric8.kubernetes.client.dsl.internal.OperationSupport.lambda$handleResponse$0(OperationSupport.java:549)\n\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)\n\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)\n\tat java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2179)\n\tat io.fabric8.kubernetes.client.http.StandardHttpClient.lambda$completeOrCancel$10(StandardHttpClient.java:141)\n\tat java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)\n\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)\n\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)\n\tat java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2179)\n\tat io.fabric8.kubernetes.client.utils.AsyncUtils.lambda$retryWithExponentialBackoff$3(AsyncUtils.java:91)\n\tat java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)\n\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)\n\tat java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)\n\tat java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)\n\tat java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844)\n\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)\n\tat java.base/java.util.concurrent.ForkJoinTask.doExec$$$capture(ForkJoinTask.java:387)\n\tat java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java)\n\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)\n\tat java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)\n\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)\n\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)\n```\n\n#### Environment\n\n**Kubernetes cluster type:**\nMinikube.\n\n\n\u003c!-- The type of cluster used for testing/deployment, ex. \"vanilla\", \"OpenShift\" --\u003e\n\n`$ Mention java-operator-sdk version from pom.xml file`\n\n5.3.2\n\n\u003c!-- Verify pom.xml file and insert the java-operator-sdk version here. --\u003e\n\n`$ java -version`\n\n\u003c!-- Insert the output of `java -version` here --\u003e\n\n`$ kubectl version`\n\n\u003c!-- Insert the output of `kubectl version` here --\u003e\n\n#### Possible Solution\n\n\u003c!-- Only if you have suggestions on a fix for the bug --\u003e\n\n#### Additional context\n\n\u003c!-- Add any other context about the problem here. --\u003e","author":{"url":"https://github.com/k-wall","@type":"Person","name":"k-wall"},"datePublished":"2026-04-06T15:11:22.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/3271/java-operator-sdk/issues/3271"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:5976ce4b-10e1-659a-ea6d-200a86e75213 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 86A8:1E511C:4E7AA2:6A5D2C:6A5145AC |
| html-safe-nonce | 2fa2e8159f00bc2e68c9dee564862029098539164b4b18edf4415b666fe2e9f3 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NkE4OjFFNTExQzo0RTdBQTI6NkE1RDJDOjZBNTE0NUFDIiwidmlzaXRvcl9pZCI6IjE3MjM2MjM2Mzk1NTc5NDg4NDQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | f0beb57c30ee70164db30ff233b3b4b0fd18df6fd80b62a78b8c791b719ed15a |
| hovercard-subject-tag | issue:4212403803 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/operator-framework/java-operator-sdk/3271/issue_layout |
| twitter:image | https://opengraph.githubassets.com/3bbc58660f8dff169d464f5e124b6fb63323f2d8be7c5ecb002379cd99d22a5f/operator-framework/java-operator-sdk/issues/3271 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/3bbc58660f8dff169d464f5e124b6fb63323f2d8be7c5ecb002379cd99d22a5f/operator-framework/java-operator-sdk/issues/3271 |
| og:image:alt | Bug Report Follow on from #3249. I believe that the change made for #3249 was, unfortunately, not adequate. In the case where the Bulk Dependent Resource is an optional API (such as OpenShift Route... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | k-wall |
| hostname | github.com |
| expected-hostname | github.com |
| None | e840f405b2718e8f2d55aafa9ff27dbce17e29d0c253011d05ea0fea3c78baff |
| turbo-cache-control | no-preview |
| go-import | github.com/operator-framework/java-operator-sdk git https://github.com/operator-framework/java-operator-sdk.git |
| octolytics-dimension-user_id | 38202270 |
| octolytics-dimension-user_login | operator-framework |
| octolytics-dimension-repository_id | 188592933 |
| octolytics-dimension-repository_nwo | operator-framework/java-operator-sdk |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 188592933 |
| octolytics-dimension-repository_network_root_nwo | operator-framework/java-operator-sdk |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | b78565f6aa43cc5323c9935ec11b22cca7bb0a62 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width