typesafegithub / typesafegithub/github-workflows-kt
[Bug] Server failed on missing body length
Open
Nobody has claimed this yet.
bug
- Dominant language
- Kotlin
- Stars
- 664
- Forks
- 30
- Avg merge
- 4d 19h
- Merged PRs (30d)
- 5
Description
Component
- github-workflows-kt (library with the DSL)
- bindings server (https://bindings.krzeminski.it)
- I don't know
Action
Not sure what triggered it, but see GET - //%20%20%20%20%22/wp-config.php.save%22,,/php-perf.php below.
Expected
No failure.
Actual
What happens instead?
Got this stack trace:
2026-06-24 21:35:39.628
2026-06-24 19:35:39,628 <INFO > <eventLoopGroupProxy-4-5 > <[]> <{request-id=4jj9s36l5eqi6si}> < io.ktor.server.Application> 500 Internal Server Error: GET - //%20%20%20%20%22/wp-config.php.save%22,,/php-perf.php in 103ms
2026-06-24 21:35:39.627
... 12 more
2026-06-24 21:35:39.627
at io.ktor.http.cio.HttpBodyKt.parseHttpBody(HttpBody.kt:112)
2026-06-24 21:35:39.627
keep-alive should be disabled (connection: close)
2026-06-24 21:35:39.627
chunked transfer encoding should be used or
2026-06-24 21:35:39.627
Caused by: java.lang.IllegalStateException: Failed to parse request body: request body length should be specified,
2026-06-24 21:35:39.627
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
2026-06-24 21:35:39.627
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
2026-06-24 21:35:39.627
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:798)
2026-06-24 21:35:39.627
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
2026-06-24 21:35:39.627
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
2026-06-24 21:35:39.627
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
2026-06-24 21:35:39.627
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
2026-06-24 21:35:39.627
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
2026-06-24 21:35:39.627
at io.ktor.utils.io.ByteWriteChannelOperationsKt$writer$job$1.invokeSuspend(ByteWriteChannelOperations.kt:185)
2026-06-24 21:35:39.627
at io.ktor.client.engine.cio.UtilsKt$readResponse$2$1$body$httpBodyParser$1.invoke(utils.kt)
2026-06-24 21:35:39.627
at io.ktor.client.engine.cio.UtilsKt$readResponse$2$1$body$httpBodyParser$1.invoke(utils.kt)
2026-06-24 21:35:39.627
at io.ktor.client.engine.cio.UtilsKt$readResponse$2$1$body$httpBodyParser$1.invokeSuspend(utils.kt:211)
2026-06-24 21:35:39.627
at io.ktor.http.cio.HttpBodyKt.parseHttpBody(HttpBody.kt:120)
2026-06-24 21:35:39.627
at io.ktor.utils.io.ByteWriteChannelOperationsKt.close(ByteWriteChannelOperations.kt:130)
2026-06-24 21:35:39.627
at io.ktor.utils.io.ByteChannel.cancel(ByteChannel.kt:462)
2026-06-24 21:35:39.627
keep-alive should be disabled (connection: close)
2026-06-24 21:35:39.627
chunked transfer encoding should be used or
2026-06-24 21:35:39.627
io.ktor.utils.io.ClosedByteChannelException: Failed to parse request body: request body length should be specified,
2026-06-24 21:35:39.627
2026-06-24 19:35:39,627 <WARN > <DefaultDispatcher-worker-15 > <[]> <{}> <com.github.benmanes.caffeine.cache.LocalAsyncCache> Exception thrown during asynchronous load
Workaround, if exists
None/unknonw.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The failure reaches io.ktor.http.cio.HttpBodyKt.parseHttpBody at HttpBody.kt:112 and HttpBody.kt:120 while the bindings server handles the malformed GET shown in the report. Start by reproducing that request and tracing the request-body parsing path; done means it no longer produces the reported 500 response and stack trace.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100