From 5364fc5da6a11e8bfea3ea3c920dc8e9ba17485c Mon Sep 17 00:00:00 2001 From: JGiter Date: Wed, 6 Nov 2024 15:42:52 +0200 Subject: [PATCH] fix: catch ipfs errors --- src/modules/ipfs/pin.processor.ts | 35 +++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/modules/ipfs/pin.processor.ts b/src/modules/ipfs/pin.processor.ts index 7ec4a0b7..989a5c06 100644 --- a/src/modules/ipfs/pin.processor.ts +++ b/src/modules/ipfs/pin.processor.ts @@ -32,20 +32,18 @@ export class PinProcessor { } @OnQueueStalled() - onStalled(job: Job) { - this.logger.warn(`Stalled ${job.name} claim ${JSON.parse(job.data).cid}`); + onStalled(job: Job) { + this.logger.warn(`Stalled ${job.name} claim ${job.data.cid}`); } @OnQueueWaiting() - async OnQueueWaiting(job: Job) { - this.logger.debug(`Waiting ${job.name} claim ${job.data}`); + async OnQueueWaiting(jobId: number) { + this.logger.debug(`Waiting ${jobId}`); } @OnQueueFailed() - onFailed(job: Job, err: Error) { - this.logger.error( - `Failed ${job.name} claim ${JSON.parse(job.data).cid}: ${err}` - ); + onFailed(job: Job, err: Error) { + this.logger.error(`Failed ${job.name} claim ${job.data.cid}: ${err}`); } /** @@ -56,14 +54,29 @@ export class PinProcessor { async pin(job: Job) { const cid = job.data.cid; let claim = job.data.claim; + this.logger.debug(`Pinning CID ${cid}`); try { await this.didStoreCluster.get(cid); } catch (_) { if (!claim) { - claim = await this.didStoreInfura.get(cid); + try { + claim = await this.didStoreInfura.get(cid); + } catch (e) { + this.logger.error( + `Can not fetch claim from Infura IPFS. CID ${cid}: ${e}` + ); + return; + } + } + try { + const clusterCid = await this.didStoreCluster.save(claim); + this.logger.debug(`CID ${cid} saved in cluster by CID ${clusterCid}`); + } catch (e) { + this.logger.error( + `Can not save claim in IPFS cluster. CID ${cid}: ${e}` + ); + return; } - const clusterCid = await this.didStoreCluster.save(claim); - this.logger.debug(`CID ${cid} saved in cluster by CID ${clusterCid}`); } } }