| 1200 | LOAN_NOT_FOUND | loanId does not exist. A loan that has been wound down is still readable with status: "closed". Writes against it raise LOAN_NOT_OPEN (1223). |
| 1201 | INVALID_OWNER_SIGNATURE | The owner signature is missing, expired, invalid, or does not bind the exact request. |
| 1203 | INVALID_WEBHOOK_URL | The webhook URL is missing, invalid, or fails a reachability probe against your endpoint. |
| 1204 | INVALID_INPUT | General validation failure with no more specific code. |
| 1205 | UNSUPPORTED_CHAIN | The blockchain is not supported for Borrow. |
| 1206 | CONFIG_NOT_FOUND | The caller has no integrator configuration yet. Expected before the first setIntegratorConfig call. |
| 1207 | MARKET_NOT_FOUND | The requested market does not exist, is not curated, or is disabled. |
| 1208 | STANDING_AUTHORIZATION | A previous authorization for this owner is still active on the underlying lending protocol. The kit grants and revokes authorization within a single batch and cannot borrow through a pre-existing standing grant. Revoke it on the underlying protocol before retrying. |
| 1210 | IDEMPOTENCY_MISMATCH | An idempotencyKey was reused with different request parameters. |
| 1211 | WOULD_BE_UNHEALTHY | A collateral withdrawal would leave the loan below 1.0 health. Only raised by withdrawCollateralRepayIfNeeded. |
| 1212 | ALREADY_UNHEALTHY | A collateral withdrawal was requested against a loan that is already liquidatable. Only raised by withdrawCollateralRepayIfNeeded. |
| 1213 | SIGNED_BUNDLE_EXPIRED | An idempotencyKey was replayed after its signed execution’s deadline. Retry with a new key. |
| 1214 | LOAN_ALREADY_EXISTS | A request to open a new loan named a market where the wallet already has one, or an earlier signed origination for the same wallet and market has not yet expired. Grow the existing loan by passing its loanId, or wait for the retry-after instant in the message. |
| 1215 | IDEMPOTENCY_ALREADY_EXECUTED | An idempotencyKey was replayed after its execution already settled onchain. Resolve the outcome from the prior execution rather than retrying. |
| 1216 | WITHDRAWAL_EXCEEDS_COLLATERAL | A collateral withdrawal asked for more than the loan has posted. Read the position’s collateral and withdraw at most that, or close the loan to release all of it. |
| 1217 | REPAY_EXCEEDS_DEBT | A repayment asked for more than the loan owes. Read the position’s borrowed amount and repay at most that, or use closeLoan to settle the debt in full. |
| 1218 | INVALID_PAGE_CURSOR | A getLoans pageAfter cursor fails to decode. Fetch a fresh first page rather than retrying the same cursor. |
| 1219 | MAX_LOANS_EXCEEDED | Opening this loan would exceed the configured maximum number of active loans, per wallet or in total. |
| 1220 | INVALID_MARKET_SNAPSHOT | The market’s onchain data snapshot is not in a valid state for this calculation (missing oracle price, LLTV, or borrow totals). |
| 1221 | INVALID_INTEGRATOR_FEE | The requested integrator fee rate is outside the permitted range (0–10000 bps). |
| 1222 | UNSUPPORTED_EXISTING_LOAN | The wallet’s existing onchain loan in this market cannot have its prior history read on this blockchain, so opening it here is refused outright. Retrying will not help. |
| 1223 | LOAN_NOT_OPEN | The loan carries no debt, either because it was repaid or because it never borrowed. Borrow against it to open it before repaying, closing, or adding collateral. |
| 1224 | INSUFFICIENT_COLLATERAL | The wallet holds less collateral than the borrow needs. Post more collateral, or reduce the requested borrow amount, before retrying. |
| 1225 | WEBHOOK_DEADLINE_OUT_OF_RANGE | A registerWebhook signature’s deadline has already passed or is beyond the service’s accepted window. The signature itself may be valid. Reissue with a deadline inside the window. |