h2 breaking changes
Every breaking API change we have recorded in h2 on crates.io: 8 breaking changes in 4 versions. Below are its newest 4 versions, removals and renames first, each with its source.
Newest change August 17, 2026

On this page
0.4.16
- Behavior changed
send_trailers
send_trailers now returns an error when the trailers contain connection-specific header fields, as RFC 9113 requires. Code that sends such headers in trailers must remove them. github.com
0.4.3
- Behavior changed
The library now returns an error when the underlying IO ends without a close_notify message, where it previously did not. Code that relied on silently ignoring this end of stream may now see an error. github.com
0.4.2
- Behavior changed
The release limits how many error resets a misbehaving connection may send, so such connections can now be closed. Code that relies on unlimited resets on one connection must handle this. github.com
0.4.0
- Removed
h2::client::Builder::max_local_error_reset_streams
h2::client::Builder::max_local_error_reset_streams was removed in h2 0.4.0 crates.io - Removed
h2::proto::DEFAULT_LOCAL_RESET_COUNT_MAX
h2::proto::DEFAULT_LOCAL_RESET_COUNT_MAX was removed in h2 0.4.0 crates.io - Removed
h2::server::Builder::max_local_error_reset_streams
h2::server::Builder::max_local_error_reset_streams was removed in h2 0.4.0 crates.io - Removed
Server.poll_close
The deprecated Server::poll_close method was removed in this release. Code that calls it must be updated before upgrading. github.com - Configuration changed
The crate now depends on http 1.0, so http types it exposes or accepts change with that version. Code using http types must be checked against http 1.0. github.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp