diff --git a/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt b/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt index d2b532b4..cada7bc9 100644 --- a/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt +++ b/stub/src/main/java/io/grpc/kotlin/ServerCalls.kt @@ -265,7 +265,9 @@ object ServerCalls { else -> Status.fromThrowable(failure).withCause(failure) } val trailers = failure?.let { Status.trailersFromThrowable(it) } ?: GrpcMetadata() - mutex.withLock { call.close(closeStatus, trailers) } + mutex.withLock { + if (!call.isCancelled) call.close(closeStatus, trailers) + } } return object: ServerCall.Listener() {