Skip to content

fix(ops): stop feed alert firing on orphaned and static feeds - #79

Merged
robertleifke merged 1 commit into
mainfrom
ops/retire-feed-alert-with-orphan-check
Sep 23, 2026
Merged

robertleifke merged 1 commit into
mainfrom
ops/retire-feed-alert-with-orphan-check

Conversation

@robertleifke

Copy link
Copy Markdown
Contributor

numo-feed-alert fires every minute on two feeds that nothing reads. Same
self-correcting shape as #77's zero-open-interest exit: a condition re-evaluated
every run
, not a disabled timer.

Why they are stale

  • Market 1 moved to the static stable feed on 2026-09-09; market 2 to the static
    cNGN feed at the SRM cutover on 2026-09-10. Neither monitored feed is the spot
    feed of any SRM market any more.
  • The publisher (numo-feeds) was retired 2026-09-22 after its relayer ran out of
    gas, so the staleness is now permanent and expected.

Two skips, both narrow

  1. Orphan — feed is not the spot feed of any SRM market, read from OraclesSet
    logs (spotFeeds is internal; latest event per market wins). Re-point a market
    at one of these and its alert comes straight back on the next run.
  2. Static — feed prices via getSpot() but never writes spotDetail, so
    now - 0 reads as ~1.8e9 seconds stale forever. Only applies when the stored
    price is 0 and the feed still answers getSpot().

A live feed that was never published has no timestamp and cannot price, so it
is not classified static and still alerts.

Verified against Base mainnet

Path Result
Orphaned feed quiet skip, exit 0
Live-but-static feed (0x507D6456…, returns 1e18) quiet skip, exit 0
Live feed genuinely broken (forced 0x41512C6a… into the live set) alerts, exit 1
Feed-lookup itself fails (RPC down) alerts loud, exit 1

The third row is the one that matters: the dead cNGN feed has a stale price in
slot 6 but reverts getSpot(), so it is correctly not silenced.

SEL_GET_SPOT is 0x2b37269c from cast sig "getSpot()", not written by hand —
the first attempt at this selector was wrong and would have failed silently by
classifying every feed as non-static.

Both monitored feeds were orphaned on purpose (market 1 -> static stable feed
2026-09-09, market 2 -> static cNGN feed at the SRM cutover 2026-09-10) and the
numo-feeds publisher was retired 2026-09-22, so the alert fires every minute on
staleness nothing can act on. getSpot() selector 0x2b37269c from `cast sig`.
@robertleifke
robertleifke merged commit e5a1866 into main Sep 23, 2026
2 checks passed
@robertleifke
robertleifke deleted the ops/retire-feed-alert-with-orphan-check branch September 23, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant