Skip to content

[S1] event_watcher silently drops events on transient RPC failure #201

@wmagev

Description

@wmagev

Location: allways/validator/event_watcher.py:313-322, :324-332

Bug

process_block catches all exceptions and returns at DEBUG log level. sync_to then unconditionally advances self.cursor = end. Any block that failed to fetch during a sync window is never reprocessed.

Impact

  • Missed SwapCompleted / SwapTimedOut → miners permanently flagged busy in scoring.
  • Missed MinerActivated → active-set drift.

Self-healing via bootstrap on restart, but in-process the scoring replay is wrong until then.

Fix

On per-block exception either raise to caller, or keep a pending-retry list and only advance cursor past blocks that succeeded.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions