From 2126c17f0d04ae3e3b80f8df5008e207ab1e5b69 Mon Sep 17 00:00:00 2001 From: Nabarun Date: Thu, 13 Nov 2025 13:35:53 +0530 Subject: [PATCH] Handle network error when fetching latest block --- packages/util/src/events.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/util/src/events.ts b/packages/util/src/events.ts index 78100bf6..e05bbec9 100644 --- a/packages/util/src/events.ts +++ b/packages/util/src/events.ts @@ -191,16 +191,23 @@ export class EventWatcher { if (isComplete) { while (true) { - const { block: latestBlock } = await this._ethClient.getBlockByHash(); + try { + const { block: latestBlock } = await this._ethClient.getBlockByHash(); - // Process block if it is blockProcessingOffset blocks behind latest block - if (latestBlock.number >= blockNumber + (this._config.jobQueue.blockProcessingOffset ?? 0)) { - await processBlockByNumber(this._jobQueue, blockNumber + 1); - break; + // Process block if it is blockProcessingOffset blocks behind latest block + if (latestBlock.number >= blockNumber + (this._config.jobQueue.blockProcessingOffset ?? 0)) { + await processBlockByNumber(this._jobQueue, blockNumber + 1); + break; + } + + log(`Latest block number fetched: ${latestBlock.number}`); + } catch (err: unknown) { + log(`Error while triggering processing for next block: ${blockNumber + 1}`); + log(err); + } finally { + log(`Retry next block to process: ${blockNumber + 1} after ${this._config.jobQueue.blockDelayInMilliSecs}ms`); + await wait(this._config.jobQueue.blockDelayInMilliSecs); } - - log(`Latest block: ${latestBlock.number}; retry next block to process: ${blockNumber + 1} after ${this._config.jobQueue.blockDelayInMilliSecs}ms`); - await wait(this._config.jobQueue.blockDelayInMilliSecs); } } }