From b871da9500caea8afa6d7764b6911d5d179b1f76 Mon Sep 17 00:00:00 2001 From: Julie Kwok Date: Thu, 22 Oct 2026 16:13:11 +1300 Subject: [PATCH] fix: read response for all requests so that subsequent calls aren't stuck in Request-sent state --- src/amplitude_experiment/remote/client.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amplitude_experiment/remote/client.py b/src/amplitude_experiment/remote/client.py index d4e8004..d175162 100644 --- a/src/amplitude_experiment/remote/client.py +++ b/src/amplitude_experiment/remote/client.py @@ -166,10 +166,12 @@ def __do_fetch(self, user, fetch_options: FetchOptions = None): response = conn.request('POST', '/sdk/v2/vardata?v=0', body, headers) elapsed = '%.3f' % ((time.time() - start) * 1000) self.logger.debug(f"[Experiment] Fetch complete in {elapsed} ms") + # always read so the keep-alive connection is reusable + response_as_bytes = response.read() if response.status != 200: raise FetchException(response.status, f"Fetch error response: status={response.status} {response.reason}") - json_response = json.loads(response.read().decode("utf8")) + json_response = json.loads(response_as_bytes.decode("utf8")) variants = evaluation_variants_json_to_variants(json_response) self.logger.debug(f"[Experiment] Fetched variants: {json.dumps(variants, default=str)}") return variants