Symptoms
A catalog query can fail before returning any typed assets when the server includes an exchange unknown to the installed SDK. Issue #827 reports this on 0.42.2; a separate user reproduced it. This is a Trading Assets read operation, not the SIP/IEX market-data entitlement problem. It is not evidence that every account fails. The earlier ASCX addition shows why enum expansion deserves a regression case.
Cause
In v0.44.0, the asset-list method validates the whole response as a list of Asset models. Its release enum lacks TXSE. PR #826 merged the addition on October 22, and the issue closed on October 27. The latest published GitHub release checked on October 27 remained v0.44.0, dated August 11. A merged fix and a shipped package are different evidence; do not promise that an upgrade to the current latest release fixes this.
Safe resolution
First inspect the installed version and whether it contains the enum addition. Until a release containing the fix is verified, consider a dedicated read-only raw-response adapter rather than changing a shared typed client. The reviewed get_all_assets/get_asset methods return raw data before model validation when configured to do so, although the constructor documentation still says that option is not implemented. This is a method-specific source observation, not a runtime guarantee.
Keep the returned rows and flag unknown exchanges explicitly. Do not relabel TXSE as another exchange, silently remove symbols or let an unrecognized record trigger an order. This illustrative offline adapter neither fetches data nor imports the SDK:
def inspect_catalog(rows, supported_exchanges):
if not isinstance(rows, list):
raise TypeError("Expected an asset-list response")
unsupported = []
for index, row in enumerate(rows):
if not isinstance(row, dict):
raise TypeError("Expected asset objects")
if row.get("exchange") not in supported_exchanges:
unsupported.append(index)
return {"rows": rows, "unsupported_indexes": unsupported}
Supply supported_exchanges from the reviewed installed model contract, not an invented abbreviated list. Preserve downstream type boundaries and show the unsupported count. See schema consumption and market-data selection.
Verification
Reviewed official SDK source, the issue, merged fix and release metadata on 2026-10-27. No Alpaca SDK execution, authenticated API call or order was performed.
Before adoption, compare an all-supported fixture with a mixed supported/TXSE fixture, then an invalid response shape. Check that total row counts are preserved and unsupported values remain visible. These are proposed controls, not executed tests. The upstream mock test accompanying the fix is not a live listing record or this article’s test result. Repository static validation validates this article, not the vendor API.
Limitations
No actual account response, installed-package workaround or fixed production release was tested. The raw option changes return types and must be checked on the exact installed version. A higher market-data subscription is not an evidenced remedy. The existing Alpaca profile retains its Market Data v2 scope; the separate Assets contract is documented by Alpaca. Search expressions are editorial candidates, not measured query volume. GetBeta has no verified resolution of this specific issue in this review.
Sources and verification scope
Reviewed official SDK source, the issue, merged fix and release metadata on 2026-10-27. No Alpaca SDK execution, authenticated API call or order was performed.
- alpaca-assets-raw-branch (code) · checked:
- alpaca-txse-enum-fix (code) · checked:
- alpaca-txse-issue (documentation) · checked:
- alpaca-assets-release (documentation) · checked: