Got actix_http::h1::dispatcher: stream error: request parse error: invalid HTTP version specified when upgrade the qdrant image to 1.8.0
We upgrade qdrant image version from 1.7.4 to 1.8.0, and qdrant-helm version from 0.7.6 to 0.8.0.
When starting qdrant server, found error message actix_http::h1::dispatcher: stream error: request parse error: invalid HTTP version specified.
Current Behavior
Found error message actix_http::h1::dispatcher: stream error: request parse error: invalid HTTP version specified from server logs
Steps to Reproduce
-
helm upgrade --install qdrant qdrant/qdrant -f apply_value.yamlcontent of apply_value.yaml
tag: 1.8.0 metrics: serviceMonitor: enabled: true additionalLabels: prometheus: kube-prometheus release: kube apiKey: true
Expected Behavior
No error message while staring qdrant server
Possible Solution
Context (Environment)
EKS 1.25
Detailed Description
Starting initializing for pod 0
_ _
__ _ __| |_ __ __ _ _ __ | |_
/ _` |/ _` | '__/ _` | '_ \| __|
| (_| | (_| | | | (_| | | | | |_
\__, |\__,_|_| \__,_|_| |_|\__|
|_|
Version: 1.8.0, build: e6411907
Access web UI at http://localhost:6333/dashboard
2024-03-07T07:40:02.909977Z INFO storage::content_manager::consensus::persistent: Initializing new raft state at ./storage/raft_state.json
2024-03-07T07:40:02.921981Z INFO qdrant::consensus: With current tick period of 100ms, leader will be established in approximately 4000ms. To avoid rejected operations - add peers and submit operations only after this period.
2024-03-07T07:40:02.925852Z INFO qdrant: Telemetry reporting enabled, id: cd1991a5-4177-4ebc-89cc-28c63d48bdfb
2024-03-07T07:40:02.926209Z INFO qdrant::tonic: TLS disabled for internal gRPC API
2024-03-07T07:40:02.927160Z INFO qdrant::actix: TLS disabled for REST API
2024-03-07T07:40:02.927224Z INFO qdrant::actix: Qdrant HTTP listening on 6333
2024-03-07T07:40:02.927228Z INFO actix_server::builder: Starting 7 workers
2024-03-07T07:40:02.927234Z INFO actix_server::server: Actix runtime found; starting in Actix runtime
2024-03-07T07:40:02.929366Z INFO qdrant::tonic: Qdrant gRPC listening on 6334
2024-03-07T07:40:02.929384Z INFO qdrant::tonic: TLS disabled for gRPC API
2024-03-07T07:43:16.604665Z ERROR actix_http::h1::dispatcher: stream error: request parse error: invalid Header provided
Possible Implementation
I came across this issue yesterday. I'm not sure if it is still a problem, but I had the same error message from actix yesterday. I figured I would share the solution.
Our error
server-1 | {"timestamp":"2025-07-17T14:58:42.049992Z","level":"ERROR","fields":{"message":"stream error: request parse error: in
valid Header provided"},"target":"actix_http::h1::dispatcher"}
Problem and solution
The problem ended up being that we were making a POST request with an empty body and the HTTP client used was not setting the header: Content-Length: 0. The solution was to explicitly set the header: Content-Length: 0 for POST requests with an empty body.
Some HTTP clients are "smart" enough to add Content-Length: 0 to the headers when making a POST request without a body, but some are not. It turns out that when a POST request was received with and empty body and without the Content-Length: 0 header, our actix_web server would think that the body was "chunked" and would then try and read it as a stream, hence "stream error".