Member since
10-10-2024
5
Posts
0
Kudos Received
0
Solutions
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.
... View more
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). nifi-atlassian-nar-2.5.0-SNAPSHOT.nar 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. Logs when NiFi Starts Successfully (but with Errors) 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
... View more
Labels:
- Labels:
-
Apache NiFi
08-07-2025
08:57 AM
Hi Matt, Just to clarify one point—specifically in the context of NiFi REST API 2.0+—is there an endpoint where we can exchange an Azure AD access token for a NiFi access token, similar to a token exchange flow? Or, if such a direct token exchange is not supported (i.e., the token must always be obtained via browser redirection to the NiFi URL), could you please confirm that this is indeed the case? Thanks in advance!
... View more
08-06-2025
08:16 AM
Hello, We're in the same situation and wanted to add that, based on this ticket: https://issues.apache.org/jira/browse/NIFI-5302, support for the Client Credentials Flow with OIDC access tokens should be available. However, it's unclear how this is supposed to be implemented, and we’re not sure which endpoint the Azure token should be sent to. Similarly, for the Authorization Code Flow, it's also not clear which endpoint should be accessed after obtaining the token from Azure. Could we please get some clear, step-by-step guidance on how to configure and use these flows? Thank you! @DianaTorres @Shelton
... View more
01-29-2025
05:57 AM
Are there any updates on this? I'm experiencing the same issue
... View more