Skip to content

Meteora - SOL-USDC swap simulation fails with ConstraintMut on bin_array_bitmap_extension #639

Description

@rapcmia

Describe the bug

This issue was noticed while testing Meteora swaps through Gateway on the #637 and development branch. During route testing, Jupiter swaps and Orca swaps worked, but repeated Meteora SOL -> USDC swap attempts
failed before submission even though the quote route returned normal results.

2026-05-20 05:56:08 | info | 	Jupiter quote: SOL->USDC, amount=1, slippagePct=1% (100 bps), swapMode=ExactIn, onlyDirectRoutes=false, restrictIntermediateTokens=true
2026-05-20 05:56:20 | info | 	Received swap request: 0.03534 SOL -> USDC in pool 5rCf1DM8LjKTw4YqhnoLcngyZYeNnQqztScTogYHAS6
2026-05-20 05:56:21 | info | 	Executing 0.0353 SELL swap in pool 5rCf1DM8LjKTw4YqhnoLcngyZYeNnQqztScTogYHAS6
2026-05-20 05:56:22 | info | 	Simulation Result: {
  "unitsConsumed": 23683,
  "status": "FAILED"
}
2026-05-20 05:56:22 | error | 	Transaction simulation failed: 
Error: {"InstructionError":[4,{"Custom":2000}]}
...trimmed

Program log: AnchorError caused by account: bin_array_bitmap_extension. Error Code: ConstraintMut. Error Number: 2000. Error Message: A mut constraint was violated.
Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo consumed 9769 of 1386086 compute units
Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo failed: custom program error: 0x7d0
    at Solana.simulateTransaction (/home/eddga/hummingbot/gateway/dev/dist/chains/solana/solana.js:1259:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async Solana.simulateWithErrorHandling (/home/eddga/hummingbot/gateway/dev/dist/chains/solana/solana.js:1272:13)
    at async executeSwap (/home/eddga/hummingbot/gateway/dev/dist/connectors/meteora/clmm-routes/executeSwap.js:72:5)
    at async Object.<anonymous> (/home/eddga/hummingbot/gateway/dev/dist/connectors/meteora/clmm-routes/executeSwap.js:145:20)
2026-05-20 05:56:22 | error | 	Error executing swap:
2026-05-20 05:56:22 | error | 	Full error:

The failure appears during Solana transaction simulation on the Meteora swap path. The returned error consistently shows InstructionError with custom error 2000, and the program logs point to an Anchor ConstraintMut failure on
bin_array_bitmap_extension during Meteora Swap2. Because the failure happens before a transaction signature is created, the user cannot complete the Meteora swap flow even when the wallet has funds and the pool quote looks healthy.

Steps to reproduce

  1. Use Gateway on the development branch on solana
  2. Request a Meteora SOL -> USDC quote for pool 5rCf1DM8LjKTw4YqhnoLcngyZYeNnQqztScTogYHAS6 using about 0.03534 SOL (around 3 USD) and confirm the quote succeeds.
  3. Execute the Meteora swap through the Gateway route with the same pool and amount.
  4. Observe that the swap fails during simulation with InstructionError:[4,{"Custom":2000}].
  5. Check the Gateway app log and confirm the program log shows AnchorError caused by account: bin_array_bitmap_extension with ConstraintMut.

note: tested on both helius(free) and chainstack(paid)

Release version

dev-2.15

Type of installation

Source

Attach required files

logs_gateway_app.log.2026-05-20.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    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