diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sync/mod.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/sync/mod.rs b/src/sync/mod.rs index d8c2d4f..e2d55bd 100644 --- a/src/sync/mod.rs +++ b/src/sync/mod.rs | |||
| @@ -851,6 +851,14 @@ impl SyncManager { | |||
| 851 | 851 | ||
| 852 | // Check if we made any progress (received ANY events we requested) | 852 | // Check if we made any progress (received ANY events we requested) |
| 853 | // If received_count is 0, relay returned nothing useful - abort retry | 853 | // If received_count is 0, relay returned nothing useful - abort retry |
| 854 | // | ||
| 855 | // NOTE: Some relays (e.g., azzamo.net, snort.social) have been observed | ||
| 856 | // returning zero events during negentropy retry even though manual queries | ||
| 857 | // (REQ by ID) show they DO have these events. This appears to be relay- | ||
| 858 | // specific behavior where the relay refuses to serve events via negentropy | ||
| 859 | // retry for unknown reasons (rate limiting, negentropy implementation bugs, | ||
| 860 | // or other internal logic). We abort here to prevent infinite loops, but | ||
| 861 | // future enhancement could fall back to REQ+EOSE when retry returns zero. | ||
| 854 | if retry_count > 0 && received_count == 0 { | 862 | if retry_count > 0 && received_count == 0 { |
| 855 | tracing::error!( | 863 | tracing::error!( |
| 856 | relay = %relay_url, | 864 | relay = %relay_url, |