Created 09-04-2025 07:17 AM
We are running Apache NiFi 2.4 (NifiKop Helm chart) in a clustered environment.
When NiFi attempts to start up and synchronize with Bitbucket Cloud Registry Client, the application fails to fully initialize.
We have:
72 process groups under version control (Bitbucket Cloud registry).
nifi.web.jetty.threads=30 (max web threads).
We are observing inconsistent startup behavior:
In some cases, NiFi starts successfully, but the logs contain repeated errors:
java.io.IOException: too many concurrent streams (from the JDK HTTP/2 client used by the Bitbucket registry integration).
Even though these errors appear, the cluster eventually loads, and the UI becomes available.
In other cases, NiFi fails to start entirely. It gets stuck ( The UI is visible for a few minutes but then it appear like an empty canvas where you cannot change or create anything) at the following log entry and does not progress further:
2025-09-04 13:57:41,246 INFO [Framework Task Thread-27] o.a.n.a.b.BitbucketFlowRegistryClient BitbucketFlowRegistryClient[id=XXXXXX] Initializing repository client
When this occurs, the Controller Settings → Registry Clients page cannot load, and NiFi remains blocked.
If we disable the Bitbucket registry (by modifying the registry client URL so it cannot connect), NiFi starts consistently without issue.
We need guidance on:
Whether this is a known issue in NiFi 2.4’s Bitbucket Flow Registry Client.
Whether there is a configuration option to force HTTP/1.1 or limit HTTP/2 concurrency for registry communications. (Not sure if this is the case)
Whether there is a supported workaround to prevent registry client initialization from blocking NiFi startup when many versioned process groups are present.
Example log with “too many concurrent streams” during startup:
at org.apache.nifi.web.client.StandardWebClientService$StandardHttpRequestBodySpec.getResponse(StandardWebClientService.java:366)
at org.apache.nifi.web.client.StandardWebClientService$StandardHttpRequestBodySpec.retrieve(StandardWebClientService.java:349)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:251)
at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler$ProxiedReturnObjectInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:237)
at jdk.proxy26/jdk.proxy26.$Proxy234.retrieve(Unknown Source)
at org.apache.nifi.atlassian.bitbucket.BitbucketRepositoryClient.getPagedResponseValues(BitbucketRepositoryClient.java:373)
at org.apache.nifi.atlassian.bitbucket.BitbucketRepositoryClient.getListCommits(BitbucketRepositoryClient.java:362)
at org.apache.nifi.atlassian.bitbucket.BitbucketRepositoryClient.getLatestCommit(BitbucketRepositoryClient.java:403)
at org.apache.nifi.atlassian.bitbucket.BitbucketRepositoryClient.getContentFromBranch(BitbucketRepositoryClient.java:244)
at org.apache.nifi.registry.flow.git.AbstractGitFlowRegistryClient.getSnapshot(AbstractGitFlowRegistryClient.java:491)
at org.apache.nifi.registry.flow.git.AbstractGitFlowRegistryClient.getFlow(AbstractGitFlowRegistryClient.java:279)
at org.apache.nifi.registry.flow.StandardFlowRegistryClientNode.lambda$getFlow$6(StandardFlowRegistryClientNode.java:231)
at org.apache.nifi.registry.flow.StandardFlowRegistryClientNode.execute(StandardFlowRegistryClientNode.java:314)
at org.apache.nifi.registry.flow.StandardFlowRegistryClientNode.getFlow(StandardFlowRegistryClientNode.java:231)
at org.apache.nifi.groups.StandardProcessGroup.synchronizeWithFlowRegistry(StandardProcessGroup.java:3769)
at org.apache.nifi.groups.StandardProcessGroup.lambda$setVersionControlInformation$27(StandardProcessGroup.java:3575)
at org.apache.nifi.controller.scheduling.StandardProcessScheduler.lambda$wrapTask$1(StandardProcessScheduler.java:177)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)
Caused by: java.io.IOException: too many concurrent streams
at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:967)
at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133)
at org.apache.nifi.web.client.StandardWebClientService$StandardHttpRequestBodySpec.getResponse(StandardWebClientService.java:364)
... 19 common frames omitted
Caused by: java.io.IOException: too many concurrent streams
at java.net.http/jdk.internal.net.http.Http2Connection.reserveStream0(Http2Connection.java:616)
at java.net.http/jdk.internal.net.http.Http2Connection.reserveStream(Http2Connection.java:583)
at java.net.http/jdk.internal.net.http.Http2ClientImpl.getConnectionFor(Http2ClientImpl.java:109)
at java.net.http/jdk.internal.net.http.ExchangeImpl.get(ExchangeImpl.java:94)
at java.net.http/jdk.internal.net.http.Exchange.establishExchange(Exchange.java:391)
at java.net.http/jdk.internal.net.http.Exchange.responseAsyncImpl0(Exchange.java:584)
at java.net.http/jdk.internal.net.http.Exchange.responseAsyncImpl(Exchange.java:428)
at java.net.http/jdk.internal.net.http.Exchange.responseAsync(Exchange.java:420)
at java.net.http/jdk.internal.net.http.MultiExchange.responseAsyncImpl(MultiExchange.java:414)
at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsync0$2(MultiExchange.java:347)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773)
at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(HttpClientImpl.java:177)
at java.base/java.util.concurrent.CompletableFuture.completeAsync(CompletableFuture.java:2719)
at java.net.http/jdk.internal.net.http.MultiExchange.responseAsync(MultiExchange.java:300)
at java.net.http/jdk.internal.net.http.HttpClientImpl.sendAsync(HttpClientImpl.java:1050)
at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:931)
... 21 common frames omitted
Created 09-04-2025 01:18 PM
@VVPeter
I'd encourage you to create an Apache NiFi Jira with all you details:
https://issues.apache.org/jira/browse/NIFI
There was an improvement made to the bitbucket registry client in version 2.5
https://issues.apache.org/jira/browse/NIFI-14583
I don't see any direct correlation to your issue., but you could try upgrading to see if your issue persists before raising your bug jira.
Thanks,
Matt
Created 09-05-2025 02:24 AM
Thank you @MattWho, I’m currently using nifi-atlassian-nar-2.5.0-SNAPSHOT.nar, even though my NiFi version is 2.4.0.