Summary
Every Raydium operation in the Gateway triggers a request to a Jupiter endpoint that no longer exists:
GET https://lite-api.jup.ag/tokens/v1/tagged/verified → 404
The URL is hard-coded in the pinned @raydium-io/raydium-sdk-v2@0.1.141-alpha, which the Gateway loads on every Raydium.getInstance() / setOwner(). The SDK *catches
- the failure and returns an empty list, so no Raydium route is broken and results stay correct — but the failure is never cached, so the dead request is re-issued on
every load instead of once per TTL. The result is unbounded log noise and one wasted HTTP round-trip per Raydium call. It reproduces on the newest hummingbot/gateway:de velopment.
Environment
| Item |
Value |
| Image |
hummingbot/gateway:development |
| Digest (new) |
sha256:4f3c0cca12cc263d1b80332964d394b46768cec7c963e77438171436705c65a7 (built 2026-09-20) |
| Digest (old) |
sha256:4b9a70681617ebb5ba38130c249f1352fcd4c9ba90bcb8b903917cd8af724afe (built 2026-08-26) |
| Gateway version |
dev-2.17.0 — identical on both images |
| Dependency |
@raydium-io/raydium-sdk-v2@0.1.141-alpha (latest published: 0.2.72-alpha) |
| Network |
solana-mainnet-beta |
| HTTP client |
axios 1.12.0 |
Steps to reproduce
- Start the Gateway with a Solana wallet configured.
- Invoke any Raydium route. The failure fires on SDK
load(), called by both init() and setOwner(), so every route reproduces it:
| Type |
Affected routes |
| CLMM |
addLiquidity, closePosition, collectFees, createPool, executeSwap, openPosition, poolInfo, positionInfo, positionsOwned, quotePosition, `quote |
| Swap` |
|
| AMM |
addLiquidity, createPool, executeSwap, poolInfo, positionInfo, quoteLiquidity, quoteSwap, removeLiquidity |
- Read the Gateway logs.
Minimal trigger: a portfolio/positions read that fans out to all CLMM venues — the Gateway logs [CLMM] Getting positions owned from raydium on solana/mainnet-beta.
Actual behaviour
1790067929764 Raydium_Api sdk logger error GET https://lite-api.jup.ag/tokens/v1/tagged/verified 404
Release version
hummingbot/gateway:development[
Type of installation
Docker
Attach required files
No response
Summary
Every Raydium operation in the Gateway triggers a request to a Jupiter endpoint that no longer exists:
The URL is hard-coded in the pinned
@raydium-io/raydium-sdk-v2@0.1.141-alpha, which the Gateway loads on everyRaydium.getInstance()/setOwner(). The SDK *catchesevery load instead of once per TTL. The result is unbounded log noise and one wasted HTTP round-trip per Raydium call. It reproduces on the newest
hummingbot/gateway:de velopment.Environment
hummingbot/gateway:developmentsha256:4f3c0cca12cc263d1b80332964d394b46768cec7c963e77438171436705c65a7(built 2026-09-20)sha256:4b9a70681617ebb5ba38130c249f1352fcd4c9ba90bcb8b903917cd8af724afe(built 2026-08-26)dev-2.17.0— identical on both images@raydium-io/raydium-sdk-v2@0.1.141-alpha(latest published:0.2.72-alpha)solana-mainnet-betaSteps to reproduce
load(), called by bothinit()andsetOwner(), so every route reproduces it:addLiquidity,closePosition,collectFees,createPool,executeSwap,openPosition,poolInfo,positionInfo,positionsOwned,quotePosition, `quoteaddLiquidity,createPool,executeSwap,poolInfo,positionInfo,quoteLiquidity,quoteSwap,removeLiquidityMinimal trigger: a portfolio/positions read that fans out to all CLMM venues — the Gateway logs
[CLMM] Getting positions owned from raydium on solana/mainnet-beta.Actual behaviour
Release version
hummingbot/gateway:development[
Type of installation
Docker
Attach required files
No response