본문 바로가기
Spring

WebClient "Only one connection receive subscriber allowed" 에러

by ybs 2023. 8. 15.
반응형

아직 정확한 원인은 파악되지 않았고, 기록차원으로 작성했다.

WebClient 에서 간헐적으로 "Only one connection receive subscriber allowed" 에러가 계속 발생하는것을 경험했다. 엄밀히 말하면 reactor-netty 에서 에러가 발생한다.

Exception:java.lang.IllegalStateException: Only one connection receive subscriber allowed.
  at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:182)

 

샘플 프로젝트를 만들고 에러를 재현해서 reactor-netty 에 문의 해봤는데 Spring Framework issue 라는 답변만 줬다. 2021년부터 논이슈로 해결 안된 상태여서 일단 나도 더 파보는건 멈춘 상태다.

 

결론적으로 WebClient 호출을 flatMap 으로 여러번 호출하면 간헐적으로 발생한다는것만 인지하고 있다.

Flux.range(1, 1000)
	.flatMap(i -> callWebClientApi());

 

추후 새로운 내용들이 나오면 업데이트 하겠다.


cf) reacot-netty 1.0.27 버전부터 Only one connection receive subscriber allowed 메세지는 "Rejecting additional inbound receiver" 로 바꼈다. 관련PR

반응형