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:

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?