Skip to main content

Depositing the whole idle balance

Using vault_free_assets as a deposit size consumes the reserve. Using vault_tvl can request more than is idle. The reserve-deposit exercise instead sizes only the excess above its target, with a zero floor. A reserve percentage is not a complete liquidity policy. Pending redemptions, other strategies, and source capacity may require additional caps and guards.

Mixing assets, shares, and USD

vault_tvl is raw underlying-asset units, not a dollar value. A deposit hook can consume assets while a redemption hook consumes shares. Check Size expression denomination and the first step’s input; do not copy a formula across those paths unchanged. Changing Literal / Formatted display does not rescale the saved expression. Check the normalized copy and readback instead.

Treating save validation as runtime proof

An expression can parse and type-check but divide by zero on a live snapshot. Prefer multiplication for ratio triggers; when division is needed, put the nonzero guard first in the same rule. Missing low-level values can read as zero, which does not establish feed readiness.

Assuming conviction counts consecutive ticks

Conviction scores the current evaluation. BINARY does not wait for repeated passing ticks, and the other modes do not provide that guarantee either. Use a suitable trigger/target gap and cooldown rather than inventing persistence behavior.

Assuming priority locks shared balances

The editor sets max_concurrent to one per strategy. Two strategies can still compete for the same idle assets. Lane order is not a portfolio-wide balance lock. Review overlapping targets, mutually exclusive rules, and combined sizing.

Editing a running definition and blindly retrying

Stop new activity before a risk-changing update, reconcile in-flight work, then reload the latest version. Save inactive, reopen, and compare. A 409 Conflict requires reconciliation, not substituting the newest version number into an old payload. Neither Save nor stopping cancels an already submitted OMS transaction. Follow the safe-update sequence.

Weakening protection to make a test pass

Do not remove liquidity guards for simulation, increase slippage solely to clear an error, or disable an emergency lock to exercise a strategy. Fix the cause or document the coverage gap. A synthetic simulation fill is not a real transaction.

Treating read access as write permission

Use public history for inspection. Manager actions belong in the authenticated Operate surface or a separately approved integration. Never export browser credentials to turn a read example into an automation script.