suresh
11/07/2025, 12:14 AMArjan van Wieringen
11/07/2025, 6:56 AMfun Application.module(myService: MyService) {
subscribe(topic = "my-topic", autoOffsetReset = Latest) {
on<UserRegistered> { event ->
myService.userHasRegistered(event.user)
}
}
}
No need for HTTP (although I use it for liveness and readyness probe) but I use al the Ktor app featureschrisjenx
11/07/2025, 9:04 PMVivek Modi
11/08/2025, 7:47 AMHristijan
11/09/2025, 12:48 PMHoratio Thomas
11/11/2025, 9:05 AMAndrej Kovar
11/11/2025, 10:32 PMHoratio Thomas
11/12/2025, 7:16 AMHristijan
11/12/2025, 9:10 AMAlexander Zhirkevich
11/12/2025, 1:27 PMMax
11/13/2025, 8:12 PMMrPowerGamerBR
11/14/2025, 11:48 PMsuspend fun main() {
val http = HttpClient(Java) {
this.expectSuccess = false
this.followRedirects = false
install(SSE)
}
val sseSession = http.sseSession("<http://127.0.0.1:13004/sse>") {}
sseSession.cancel()
delay(100_000)
}
The SSE session does NOT close on the backend, this bug does not happen when using the CIO engine (will create a proper bug report later)toneerav
11/17/2025, 5:04 PMresponse.body (or bodyAsText()) consumes it so downstream code can’t receive it anymore.
• The usual auth callback flow only triggers on network/HTTP 401 — here the HTTP status is 200 so that doesn’t help. eg. refreshToken from auth provider
Usecase
• Server sometimes returns HTTP 200 but the JSON body contains a "code" field. If "code" == 401" I need to call the refresh-token API, update the auth token, then replay the original request with the new token. So even in HTTPStatus code 200 I need check response and validate about 401 case.
So how to intercept response, call the required api in between based on response and Replay the request. ?
can anyone please suggest better approach or any document or link ?Tak Wai Wang
11/20/2025, 11:19 AMNiclas Kron
11/20/2025, 1:46 PMJsonConvertException and not a ResponseException with the HttpResponse that I can parse into a different structure..Hristijan
11/20/2025, 3:27 PMLG
11/20/2025, 11:40 PMdorche
11/21/2025, 7:32 PMio.ktor.utils.io.ClosedByteChannelException on our client. More details in threadFlorian
11/21/2025, 10:07 PMoperationId is empty for every route. Does the plugin not have an option to set the operationId or what would be the intended way to set it?CLOVIS
11/22/2025, 2:35 PMio.ktor.utils.io.ConcurrentIOException: Concurrent read attempts on Native but not on the JVM, running the same code.
Are there platform-specific limitations around this? Am I just lucky on the JVM? It is possible to programmatically detect if this is allowed or not on the current platform?CLOVIS
11/22/2025, 2:49 PMwhile (currentCoroutineContext().isActive) {
select {
// …
async {
readChannel.awaitContent(4 * 4) // standard message header size
}.onAwait { isActive ->
// …
}
}
}
Maybe that's not the correct way to use a ByteReadChannel in a select expression?Nathan Fallet
11/23/2025, 6:31 PMHoratio Thomas
11/24/2025, 8:26 AMAlina Dolgikh [JB]
maximilianosorich
11/26/2025, 12:04 PMrouting {
staticResources("/", "files")
}
When I call directly in the browser it works, but when I do:
curl -I <http://example.com/sitemap.xml>
The response is:
HTTP/1.1 404 Not Found
Content-Length: 853
Content-Type: text/html; charset=UTF-8
I suppose this content is from the Status Pages plugin:
install(StatusPages) {
statusFile(HttpStatusCode.NotFound, filePattern = "error#.html")
}
I have tried the same with curl in localhost with same results.
Is this normal behaviour?Vivek Modi
11/27/2025, 8:41 PMFlorian
11/27/2025, 11:13 PM/api/v1/..., /api/v2/..., but without lot's of duplicate code?Hristijan
11/28/2025, 1:04 AMTobias Grether
11/28/2025, 10:23 AMRey (Kingg22)
12/01/2025, 3:38 AM