zed-industries/zed · error
non-ASCII header value for {name}
Error message
non-ASCII header value for {name} What it means
Guard in the wasm fetch header loop: HeaderValue::to_str() failed for a header, meaning the value contains non-ASCII/invalid bytes that a JS Headers object cannot store. The message names the offending header; HTTP/2-style binary header values are not representable in browser fetch.
Source
Thrown at crates/gpui_web/src/http_client.rs:142
init.set_redirect(web_sys::RequestRedirect::Follow);
}
}
}
if let Some(ref bytes) = body_bytes {
let uint8array = js_sys::Uint8Array::from(bytes.as_slice());
init.set_body(uint8array.as_ref());
}
let url = parts.uri.to_string();
let request = web_sys::Request::new_with_str_and_init(&url, &init)
.map_err(|error| anyhow!("failed to create fetch Request: {error:?}"))?;
let request_headers = request.headers();
for (name, value) in &parts.headers {
let value_str = value
.to_str()
.map_err(|_| anyhow!("non-ASCII header value for {name}"))?;
request_headers
.set(name.as_str(), value_str)
.map_err(|error| anyhow!("failed to set header {name}: {error:?}"))?;
}
let promise =
global_fetch(&request).map_err(|error| anyhow!("fetch threw an error: {error:?}"))?;
let response_value = wasm_bindgen_futures::JsFuture::from(promise)
.await
.map_err(|error| anyhow!("fetch failed: {error:?}"))?;
let web_response: web_sys::Response = response_value
.dyn_into()
.map_err(|error| anyhow!("fetch result is not a Response: {error:?}"))?;
let status = web_response.status();
let mut builder = http_client::http::Response::builder().status(status);
View on GitHub (pinned to f4178619ac)
Solutions
- Encode binary header values as ASCII (e.g. base64) before sending from wasm
- Reject or strip non-ASCII headers at the API boundary with a clear error
- For protocols needing binary headers (HTTP/2), use a proxy that accepts them server-side
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/gpui_web/src/http_client.rs:142 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/31f7f0b9fb8810d3.
Report an issue: GitHub.