HTTP2 server occasionally sends SETTINGS ack as first frame
@normanmaurer is already working on this.
Since Jan 20, 2026.
- Dominant language
- Java
- Stars
- 35.1k
- Forks
- 16.3k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 143
Description
Aleph's test suite occasionally flakes with the following error:
io.netty.handler.codec.http2.Http2Exception: First received frame was not SETTINGS. Hex dump for first 5 bytes: 0000000401
The error message is a bit misleading: It is in fact a SETTINGS frame but with the ACK bit set (see 8f334885ef58aa0dda4107391200c29527106df7 - maybe the error message could be improved here). I suspect that it's a race condition in which the server receives the client's initial SETTINGS frame before having sent its own and then immediately sends the ack frame. I've tried to construct a reproducer for this but was unsuccessful so far but wanted to share it already - maybe you can figure this out more quickly 🙏
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.
Assessment
This issue has not been assessed yet.