Skip to content

fix(collector): fall back to non-anchor probes when all anchors are unresponsive#3576

Merged
nikw9944 merged 1 commit intomainfrom
fix/ripe-atlas-unresponsive-anchor-fallback
Apr 23, 2026
Merged

fix(collector): fall back to non-anchor probes when all anchors are unresponsive#3576
nikw9944 merged 1 commit intomainfrom
fix/ripe-atlas-unresponsive-anchor-fallback

Conversation

@nikw9944
Copy link
Copy Markdown
Contributor

Summary

  • Fixes the "No responsive probes found for location: slc" error where a location goes dark even though non-anchor probes are available
  • Adds fetchFallbackProbesForUnresponsiveLocations in configureMeasurements, called before generateWantedMeasurements, which detects locations where all known probes are unresponsive and fetches non-anchor Connected probes as a replacement

Context

PR #3570 added a fallback in fetchProbesWithErrorHandling that retries without is_anchor=true when the RIPE Atlas API returns zero anchors. That handles the "no anchors in area" case but misses the more common failure mode: RIPE Atlas still reports the anchor as Connected (so the API returns it), but the probe has stopped responding to our measurements and was marked unresponsive in the local measurement state. When generateWantedMeasurements runs filterResponsiveProbes, the anchor is excluded and the location is skipped with no fallback.

Test plan

  • Two new unit tests: fallback triggered when all probes unresponsive, no fallback when at least one is responsive
  • Full ripeatlas package tests pass
  • Deploy snapshot to devnet and verify SLC measurements are created using non-anchor probes

🤖 Generated with Claude Code

…nown probes are unresponsive

fetchProbesWithErrorHandling already falls back to non-anchor probes when
RIPE Atlas returns no anchors for a location. But when an anchor exists and
RIPE Atlas still reports it as Connected, it is returned by the API and
fetchProbesWithErrorHandling never falls back — even if that probe has been
marked unresponsive in the local measurement state.

Add fetchFallbackProbesForUnresponsiveLocations, called in
configureMeasurements before generateWantedMeasurements, which detects
locations where all known probes are unresponsive and fetches non-anchor
Connected probes as a replacement. This fixes the "No responsive probes
found for location: slc" log that prevents measurements from being created.
@nikw9944 nikw9944 self-assigned this Apr 23, 2026
@nikw9944 nikw9944 linked an issue Apr 23, 2026 that may be closed by this pull request
@nikw9944 nikw9944 enabled auto-merge (squash) April 23, 2026 16:38
@nikw9944 nikw9944 merged commit e9948b1 into main Apr 23, 2026
40 of 42 checks passed
@nikw9944 nikw9944 deleted the fix/ripe-atlas-unresponsive-anchor-fallback branch April 23, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

collector: fallback if no anchor probes are found

2 participants