Skip to content

SDK drift: compareMarketPrices bypasses the shared retrying transport in TypeScript, unlike Python and unlike its own TS sibling Router methods #1485

Description

@realfishsam

Drift

compareMarketPrices alone issues a raw fetch() call directly instead of going through the shared sidecarReadRequest/fetchWithRetry transport that every other Router method uses — so it lacks the connection-failure retry logic (3 retries, 200/500/1000ms backoff) its siblings get for free. Python is uniform: compare_market_prices uses the exact same _call_method helper (with retry) as every other Router method.

TypeScript SDK

sdks/typescript/pmxt/router.ts:476-490 — raw await fetch(url, {...}), duplicating its own AbortSignal.timeout(30_000) and a dynamic import('./errors.js') for error parsing, none of which the other Router methods do.

Python SDK

sdks/python/pmxt/router.py:477compare_market_prices calls self._call_method("compareMarketPrices", params), identical to every other Router method.

Expected

compareMarketPrices in TypeScript should route through the same sidecarReadRequest/fetchWithRetry transport as its sibling Router methods.

Impact

A transient connection failure that every other Router method (and every Python Router method, including compare_market_prices) would transparently retry causes compareMarketPrices in TypeScript alone to fail immediately — an inconsistent reliability characteristic for what should be a uniform set of read operations.


Found by automated SDK cross-language drift audit

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions