-
-
Notifications
You must be signed in to change notification settings - Fork 212
Closed
Labels
area/topicsscope/backendRelated to backend changesRelated to backend changesstatus/triage/completedAutomatic triage completedAutomatic triage completedstatus/triage/manualManual triage in progressManual triage in progresstype/bugSomething isn't workingSomething isn't working
Description
Issue submitter TODO list
- I've looked up my issue in FAQ
- I've searched for an already existing issues here
- I've tried running
main-labeled docker image and the issue still persists there - I'm running a supported version of the application which is listed here
Describe the bug (actual behavior)
Changing replication.factor fail with
2025-06-03 22:30:20,899 ERROR [parallel-1] o.s.b.a.w.r.e.AbstractErrorWebExceptionHandler: [e6d0bb7d-56] 500 Server Error for HTTP PATCH "/api/clusters/local/topics/topic-3/replications"
2025-06-03T22:30:20.901407327Z java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null
2025-06-03T22:30:20.901413379Z at io.kafbat.ui.service.TopicsService.lambda$getBrokersMap$27(TopicsService.java:377)
2025-06-03T22:30:20.901417352Z Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
2025-06-03T22:30:20.901420782Z Error has been observed at the following site(s):
2025-06-03T22:30:20.901424032Z *__checkpoint ⇢ Handler io.kafbat.ui.controller.TopicsController#changeReplicationFactor(String, String, Mono, ServerWebExchange) [DispatcherHandler]
2025-06-03T22:30:20.901427921Z *__checkpoint ⇢ io.kafbat.ui.config.CorsGlobalConfiguration$$Lambda/0x0000784fc669e2f8 [DefaultWebFilterChain]
2025-06-03T22:30:20.901431242Z *__checkpoint ⇢ io.kafbat.ui.config.ReadOnlyModeFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901434561Z *__checkpoint ⇢ io.kafbat.ui.config.CustomWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901437791Z *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901440954Z *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901444129Z *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901447364Z *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901450558Z *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901453755Z *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901456960Z *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901460190Z *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
2025-06-03T22:30:20.901463410Z *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
2025-06-03T22:30:20.901466749Z *__checkpoint ⇢ HTTP PATCH "/api/clusters/local/topics/topic-3/replications" [ExceptionHandlingWebHandler]
2025-06-03T22:30:20.901488020Z Original Stack Trace:
2025-06-03T22:30:20.901490715Z at io.kafbat.ui.service.TopicsService.lambda$getBrokersMap$27(TopicsService.java:377)
2025-06-03T22:30:20.901493046Z at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
2025-06-03T22:30:20.901496986Z at io.kafbat.ui.service.TopicsService.lambda$getBrokersMap$28(TopicsService.java:377)
2025-06-03T22:30:20.901499333Z at java.base/java.util.HashMap$Values.forEach(HashMap.java:1073)
2025-06-03T22:30:20.901501478Z at io.kafbat.ui.service.TopicsService.getBrokersMap(TopicsService.java:376)
2025-06-03T22:30:20.901503648Z at io.kafbat.ui.service.TopicsService.getPartitionsReassignments(TopicsService.java:288)
2025-06-03T22:30:20.901505818Z at io.kafbat.ui.service.TopicsService.lambda$changeReplicationFactor$19(TopicsService.java:273)
2025-06-03T22:30:20.901508015Z at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132)
2025-06-03T22:30:20.901510144Z at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
2025-06-03T22:30:20.901512232Z at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
2025-06-03T22:30:20.901514409Z at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2570)
2025-06-03T22:30:20.901516533Z at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2366)
2025-06-03T22:30:20.901518747Z at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2240)
2025-06-03T22:30:20.901520897Z at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
2025-06-03T22:30:20.901523006Z at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
2025-06-03T22:30:20.901525160Z at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
2025-06-03T22:30:20.901527293Z at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158)
2025-06-03T22:30:20.901529368Z at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245)
2025-06-03T22:30:20.901531518Z at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305)
2025-06-03T22:30:20.901533643Z at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
2025-06-03T22:30:20.901535948Z at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
2025-06-03T22:30:20.901538042Z at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:297)
2025-06-03T22:30:20.901540187Z at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:478)
2025-06-03T22:30:20.901542296Z at reactor.core.publisher.MonoReduce$ReduceSubscriber.onComplete(MonoReduce.java:197)
2025-06-03T22:30:20.901544516Z at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:287)
2025-06-03T22:30:20.901550109Z at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:889)
2025-06-03T22:30:20.901553006Z at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
2025-06-03T22:30:20.901555251Z at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:298)
2025-06-03T22:30:20.901557430Z at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:478)
2025-06-03T22:30:20.901559574Z at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
2025-06-03T22:30:20.901561758Z at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:122)
2025-06-03T22:30:20.901563980Z at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
2025-06-03T22:30:20.901566088Z at reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:181)
2025-06-03T22:30:20.901568223Z at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
2025-06-03T22:30:20.901570315Z at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
2025-06-03T22:30:20.901572403Z at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
2025-06-03T22:30:20.901574556Z at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
2025-06-03T22:30:20.901576847Z at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
2025-06-03T22:30:20.901579016Z at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
2025-06-03T22:30:20.901581186Z at java.base/java.lang.Thread.run(Thread.java:1583)
when trying to change the replication.factor from 2 to 1 on this topic ->
Expected behavior
It should works
cause using kafka-reassign-partitions.sh I do not have any error
Your installation details
using ghcr.io/kafbat/kafka-ui:main
with confluentinc/cp-kafka:7.9.1 (kraft)
Steps to reproduce
if there is no URP ( no missing broker) then it works
Screenshots
No response
Logs
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
area/topicsscope/backendRelated to backend changesRelated to backend changesstatus/triage/completedAutomatic triage completedAutomatic triage completedstatus/triage/manualManual triage in progressManual triage in progresstype/bugSomething isn't workingSomething isn't working

