Steer Protocol
OperateRunbooks

Quote Server Operations

Run and diagnose the quote server and related signer, M1, liquidation, and oracle-updater paths.

Scope

Use this when quote generation, M1 material, liquidation inventory, or fixed oracle updates are unhealthy.

Start And Health

make quote-dev
make quote-health

If the server imports stale SDK code, refresh file dependency installs:

pnpm install --frozen-lockfile --filter @steerprotocol/collateral-rail-sdk
pnpm install --frozen-lockfile --filter @steerprotocol/collateral-rail-quote-server

Required Runtime Inputs

  • COLLATERAL_MANAGER
  • SETTLEMENT_CONTROLLER for registered-issuer paths
  • CHAIN_ID
  • SPONSOR_SIGNER_PRIVATE_KEY or accepted signer aliases
  • QUOTE_RPC_URL, RPC_URL, or SEPOLIA_RPC_URL
  • M1_JWT for M1-backed endpoints

Diagnose By Symptom

SymptomLikely areaFirst check
/healthz downprocess/configstartup logs and missing env
signed quote rejectedsigner/domain/policysigner, chain id, verifying contract
M1 deposit/redeem failsissuer materialM1 auth, permit source, beneficiary capacity
liquidation endpoint emptycandidate/index windowblock range and controller config
fixed oracle staleupdater ownership/configupdater logs and target owner

Fixed Oracle Updater

Quote-server health does not prove updater success. Look for updater-specific log lines:

  • enabled targets and interval.
  • fixed oracle updated ...
  • fixed oracle already current ...
  • ownership errors naming updater and current owner.

If one target fails first, later configured targets may not update during that cycle. Diagnose the first failing target before assuming the rest are healthy.

Verification

After a fix:

  1. quote server starts without config errors.
  2. /healthz responds.
  3. the affected endpoint returns a structured response or a deliberate fail-closed reason.
  4. logs show the background updater or LI.FI loop path succeeding when relevant.

On this page