Skip to content

Comments

Work around invalid HTTP server behavior for status 204 and 304 responses#12635

Open
tschneidereit wants to merge 1 commit intobytecodealliance:mainfrom
tschneidereit:204-handling
Open

Work around invalid HTTP server behavior for status 204 and 304 responses#12635
tschneidereit wants to merge 1 commit intobytecodealliance:mainfrom
tschneidereit:204-handling

Conversation

@tschneidereit
Copy link
Member

Per spec, an HTTP server isn't allowed to send a body for these status code. Nothing's stopping it from doing so nevertheless, though. This is admittedly very niche and might only actually happen in test suites. It does happen in those, leading to flaky results because whether we report an error here or not depends on whether the body is contained in the same packet as the headers or not.

I think it'd also be okay to instead make these cases always error, though for all I know it's possible that there are niche compatibility concerns with that.

I'm not sure how to add a test to this, because it requires an external server and is flaky, but I put together a repro in a gist. Note that that uses the wasip3 crate, which targets 0.3.0-rc-2026-01-06, so this won't work as-is with Wasmtime's main.

…nses

Per spec, an HTTP server isn't allowed to send a body for these status code. Nothing's stopping it from doing so nevertheless, though. This is admittedly very niche and might only actually happen in test suites. It does happen in those, leading to flaky results because whether we report an error here or not depends on whether the body is contained in the same packet as the headers or not.
@tschneidereit tschneidereit requested a review from a team as a code owner February 22, 2026 11:27
@alexcrichton
Copy link
Member

This is subtle enough that I think we'll probably want a test for this. Right now all wasi-http tests have access to a server running this in the background, so could that be updated with a few more paths, such as something upstream returning a 204 with a body, and that be used as part of the test?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants