GrpcExceptionHandlerFunction.apply() returns Status synchronously, making it impossible to perform async/suspend operations (e.g., i18n lookup) without runBlocking in ServerCall.close(). This risks event loop thread starvation.
Related discussion: #6693
Proposing AsyncGrpcExceptionHandlerFunction that returns CompletableFuture<Status>, following the same pattern as AsyncServerInterceptor.
GrpcExceptionHandlerFunction.apply()returnsStatussynchronously, making it impossible to perform async/suspend operations (e.g., i18n lookup) withoutrunBlockinginServerCall.close(). This risks event loop thread starvation.Related discussion: #6693
Proposing
AsyncGrpcExceptionHandlerFunctionthat returnsCompletableFuture<Status>, following the same pattern asAsyncServerInterceptor.