Skip to content

study: report local outages apart from provider failures - #16

Merged
macjayz merged 1 commit into
mainfrom
study/local-outages
Nov 1, 2026
Merged

macjayz merged 1 commit into
mainfrom
study/local-outages

Conversation

@macjayz

@macjayz macjayz commented Nov 1, 2026

Copy link
Copy Markdown
Owner

The study report blamed the collector's own connection on the providers.

Local outages. All providers are polled in the same tick. When more than half of them fail in one tick with a client-side fetch failed, that's the collector's network (Wi-Fi drop, laptop sleep), not any provider. Those ticks now get their own section and are excluded from availability, latency and head lag. Detector findings and incidents are left as recorded.

Error inside 200. The column counted error_in_body on any status, so it always equalled transport failures. It now counts responses below 400 only.

Run against the 64.6 h study (5 public mainnet providers):

Before After
drpc transport failures 9.39% 1.67%
publicnode transport failures 10.72% 2.59%
"error inside 200", every provider = transport failures 0.00%
Local outage ticks not reported 1,540 of 9,799 (15.7%)

Disagreements at equal height are unchanged (they already ignore failed answers): 2 of 7,000 eth_call runs.

Tested: ran the new report inside the study container against the live study database. Linted and prettier-clean.

🤖 Generated with Claude Code

The collector polls every provider in the same tick, so a client-side
"fetch failed" on most of them at once is the collector's own connection
dropping. On a 64.6 h laptop run that was 15.7% of ticks, and it showed
up as a ~9.5% failure rate on every provider. Those ticks are now counted
in their own section and left out of availability, latency and head lag.

The "JSON-RPC error inside 200" column also counted errors on any status
code, so it always matched transport failures. It now counts 200s only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@macjayz
macjayz merged commit bca0d23 into main Nov 1, 2026
8 checks passed
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