Common issues when integrating the Galliun SDK and wallet adapters.
Wallet not connected
Symptom: SDK throws sdk_error — missing wallet or chain.
Fix: Ensure both chain and wallet are set on the client before making paid requests.
const client = new GalliunClient({
baseUrl: "https://api.galliun.com",
chain: "sui",
wallet: suiWallet, // must be defined
});
Unsupported chain
Symptom: Error unsupported_chain on 402.
Fix: Check the endpoint's payment rails. Your client's chain must match an entry in the 402 accepts array ("sui" or "solana"). Configure additional rails in the dashboard.
Expired payment requirement
Symptom: Error payment_expired.
Fix: 402 requirements have a short TTL. Retry the original request to get a fresh requirement with a new nonce. Do not reuse old nonces or transaction hashes.
Reused transaction
Symptom: Error payment_reused or payment_replay.
Fix: Each 402 nonce accepts one transaction. Submit a new on-chain payment for the new requirement.
Endpoint unavailable
Symptom: HTTP 503 endpoint_unavailable.
Fix: The endpoint is disabled or unhealthy. No payment is needed. Check endpoint health in the dashboard and re-enable when ready.
Payment confirmed but execution failed
Symptom: HTTP 502 with refundRecommendationStatus: "recommended" in response.
Fix: Galliun does not issue refunds. A refund recommendation is created for the API provider. The provider may refund the payer from their own wallet. See Refunds.
Incomplete split payment
Symptom: payment_verification_failed after wallet payment.
Fix: exact_split requires one atomic transaction covering all split legs (provider + platform). Ensure your wallet adapter sends USDC to every recipient in accepts[].splits[].
Solana / Sui RPC issues
Symptom: Transaction submission fails or hangs.
Fix:
- Use a dedicated RPC provider (Helius, QuickNode, Mysten RPC) in production
- Check network matches (devnet vs mainnet)
- Ensure sufficient native token for gas (SUI or SOL)
Body changed between retry
Symptom: payment_verification_failed after wallet payment.
Fix: Do not modify request body, headers, or method between initial call and retry. Let the SDK handle the retry loop.
Still stuck?
- Check Error codes
- Try the Playground Payment Flow Inspector
- Review x402 payment flow