netty / netty/netty

HTTP2 server occasionally sends SETTINGS ack as first frame

Open
#16,142 16 comments 0 reactions 1 assignee View on GitHub

@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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.