AdjustBlockReason:
    | "TROVE_NOT_ACTIVE"
    | "NO_CHANGE_REQUESTED"
    | "COLLATERAL_ADD_AND_WITHDRAW"
    | "ZERO_DEBT_INCREASE"
    | "DEBT_INCREASE_AND_REPAY"
    | "WITHDRAWAL_EXCEEDS_COLLATERAL"
    | "COLLATERAL_WITHDRAWAL_IN_RECOVERY_MODE"
    | "ICR_BELOW_THRESHOLD"
    | "ICR_NOT_IMPROVED_IN_RECOVERY_MODE"
    | "TCR_BELOW_CCR"
    | "EXCEEDS_BORROWING_CAPACITY"
    | "BELOW_MINIMUM_DEBT"
    | "REPAY_EXCEEDS_DEBT"
    | "INSUFFICIENT_MUSD_BALANCE"

Why an adjust preview came back not viable. Machine readable, stable strings.

Type declaration

  • "TROVE_NOT_ACTIVE"

    _requireTroveisActive (:790, :1179-1189).

  • "NO_CHANGE_REQUESTED"

    _requireNonZeroAdjustment (:789, :1377-1386): nothing was actually requested.

  • "COLLATERAL_ADD_AND_WITHDRAW"

    _requireSingularCollChange (:788, :1367-1375): one direction of collateral only.

  • "ZERO_DEBT_INCREASE"

    _requireNonZeroDebtChange (:786, :1351-1356): a debt increase of zero.

  • "DEBT_INCREASE_AND_REPAY"

    Both debt legs were supplied (MK-077). SDK input validation, not a contract gate, and the asymmetry with COLLATERAL_ADD_AND_WITHDRAW is real rather than an oversight: _adjustTrove takes ONE debt leg, _mUSDChange with a separate _isDebtIncrease flag (BorrowerOperations.sol:757-758), so "both" is unrepresentable on chain and there is nothing for the contract to refuse. The collateral side needs _requireSingularCollChange (:788, :1367-1375) precisely because msg.value and _collWithdrawal ARE two parameters.

    Before this reason existed the evaluator took the increase, dropped the repayment and returned viable: true, while trove/index.ts:523-525 threw InvalidAdjustment for the same input. The preview now refuses what the write path refuses.

  • "WITHDRAWAL_EXCEEDS_COLLATERAL"

    assert(_collWithdrawal <= vars.coll) (:837). An assert, so on chain this is a Panic.

  • "COLLATERAL_WITHDRAWAL_IN_RECOVERY_MODE"

    _requireNoCollWithdrawal (:1270, :1388-1393). Recovery Mode only.

  • "ICR_BELOW_THRESHOLD"

    _requireICRisAboveMCR (:1201) or _requireICRisAboveCCR (:1272). Absolute.

  • "ICR_NOT_IMPROVED_IN_RECOVERY_MODE"

    _requireNewICRisAboveOldICR (:1273). Recovery Mode, debt increases only.

  • "TCR_BELOW_CCR"

    _requireNewTCRisAboveCCR (:1209). Normal mode only; Recovery Mode omits it.

  • "EXCEEDS_BORROWING_CAPACITY"

    _requireHasBorrowingCapacity (:851, :1358-1365). Debt increases only.

  • "BELOW_MINIMUM_DEBT"

    _requireAtLeastMinNetDebt (:856, :1239-1244). Repayments only.

  • "REPAY_EXCEEDS_DEBT"

    _requireValidMUSDRepayment (:859, :1246-1254). Repayments only.

  • "INSUFFICIENT_MUSD_BALANCE"

    _requireSufficientMUSDBalance (:860, :1229-1237). Repayments only.