From 6eda988e3b9c66cc4ec6ae8ef0f5ae1fc184b268 Mon Sep 17 00:00:00 2001 From: Celes Renata Date: Thu, 16 Apr 2026 00:45:19 +0000 Subject: [PATCH] fix: strip /v2 suffix from broker base URL to prevent doubled path The alpaca.url config file contains https://paper-api.alpaca.markets/v2 but the adapter code also prepends /v2/ to all paths, resulting in /v2/v2/positions which returns 404. Now strips trailing /v2 or /v1 from the configured base URL since the adapter manages API versioning. This was causing 1,017 consecutive broker sync failures. --- services/adapters/broker_adapter.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/adapters/broker_adapter.py b/services/adapters/broker_adapter.py index fd8ed47..d70a53c 100644 --- a/services/adapters/broker_adapter.py +++ b/services/adapters/broker_adapter.py @@ -308,6 +308,11 @@ class AlpacaBrokerAdapter(BrokerDataAdapter): self.api_secret = api_secret if base_url: self.base_url = base_url.rstrip("/") + # Strip trailing /v2 or /v1 — the adapter adds API version prefixes itself + for suffix in ("/v2", "/v1"): + if self.base_url.endswith(suffix): + self.base_url = self.base_url[: -len(suffix)] + break elif mode == TradingMode.LIVE: self.base_url = self.LIVE_BASE_URL else: