Oracle stale ~9h (max age 6h): window fails closed, UST1 minting currently impossible on mainnet #31
Labels
No labels
enhancement
governance
QA
testing
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/ust1-window#31
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The ust1-oracle (
terra1fmht0t6svq3n24zx03nkfja0m40zhfyyxkdcvlrkl6u7gfe6aagq4gch8n) last updated at 2026-08-16 02:52 UTC (last_update_sec= 1786848774, rate 1225650379515835109 ≈ 1.22565) and has not ticked since. With the window'smax_oracle_age_sec = 21600,ensure_oracle_usablehas been failing closed for ~3 hours and counting (oracle age ~9h at time of filing), so no one can currently mint UST1 on mainnet — theDepositpath reverts.Everything else is healthy: window
paused = false, bridgepaused = false(fee 30 bps), vFDUSD bridging works.Likely cause
The
oracle-serviceupdater isn't running / confirming ticks — README still lists "oracle-service Coolify (normalized ticks)" as pending under mainnet status. Per INV-ORACLE-OPS-SILENCE-001 the service should emit a high-visibility liveness alert on >6h silence; that alert path may also be worth verifying since the silence has now exceeded it.Impact
With the click-wrap live and the UST1 pools seeded, the mint window is the intended $1.00 source of UST1. While it's closed, UST1 can only be acquired from the thin DEX pools — which is exactly how UST1 got pushed to ~$1.16 over the launch weekend, and it undercuts the mint-arb that's supposed to hold UST1 at $1.
Ready to verify
We have ~114 vFDUSD staged (BSC, Venus) and the Terra side automated (bridge claim + window deposit) — happy to be the live probe the moment the oracle is fresh and confirm the full mint path end-to-end here.
mentioned in issue #32
marked as related to #32
mentioned in merge request !46
Live status after oracle-service Coolify deploy (!46 / #32)
The 9h stale window from this incident is not current. At 2026-08-16 ~13:40 UTC:
last_update_sec=1786881183(11:53:03 UTC, txC903047F…), age ~1.8 h / max 6 h/ust1shows Oracle FreshUST1_OPS_STRICT_STALE=1health script PASSMint/redeem should be possible again on the window. Leave this issue open until a Venus-flat stretch shows the new heartbeat (
event=oracle_heartbeatafter 4h) keeping age inside 6h — first eligible include expected ~16:40 UTC today if Venus stays unchanged. Details on #32.Status check (on-chain + Coolify logs) — 2026-08-17 ~00:51 UTC
The #31 stale window is cleared. Mint/redeem should work: oracle age ~12 min / 6 h, both oracle and window unpaused. Logs and columbus-5 LCD agree on the same three includes.
Live LCD (
effective_swap/ oracleState)terra1fmht0t6svq3n24zx03nkfja0m40zhfyyxkdcvlrkl6u7gfe6aagq4gch8nrate1225686890014493288≈ 1.22569last_update_sec1786927136= 2026-08-17 00:38:56 UTCmax_oracle_age_secpausedfalsepausedfalseday_baseline_rate1225685240641120292(utc_day_id=20682)Log ↔ chain match (operator
terra1hm3ph…)Coolify
tick_kind="rate_change"confirms (CheckTx → DeliverTxcode=0→oracle_event_confirm→oracle_state_confirm) match LCD wasmaction=update_rateon this contract:proposedupdate_rate.rate017F5DAD…1225677131057590071EC2E1D8C…12256852406411202928329B298…1225686890014493288State.rate)Inter-tick gaps 14409 s and 14407 s — just over the 4h throttle (
INV-ORACLE-THROTTLE-001/min_interval: 14400). CurrentState.rateequals the last confirmed tx.What the logs show besides those includes
poll_interval_secs=3600,max_silence_since_broadcast_secs=21600,window_default_max_oracle_age_secs=21600.no rate change from BSC(cheap skip; no tx). AfterC903047F(1225669001749054409) this held until Venus moved.EC2E1D8C→ threeUpdateTooSoon { min_interval: 14400 }skips for proposed1225686890014493288vs current1225685240641120292. Next poll after throttle submitted8329B298. Policy is doing the right thing, not stalling.network min gas price probe failed/ LCD501 Not Implementedis warn-only; fallbackTERRA_GAS_PRICE=28.325still included all three txs.Statematch. No lagged-State fail-close in this stretch.Still open on this issue
No
tick_kind="heartbeat"/event=oracle_heartbeatyet — Venus kept inching up, so every include was a realrate_change. Heartbeat is the leftover from the last note: prove a same-rateUpdateRateafter 4h on a flat Venus stretch so age cannot drift to 6h again. Leave open for that; the mint-block from this incident is not current.