diff --git a/guardian-service/src/api/helpers/profile-helper.ts b/guardian-service/src/api/helpers/profile-helper.ts index 4c14aae7ce..e3a8cd1fe4 100644 --- a/guardian-service/src/api/helpers/profile-helper.ts +++ b/guardian-service/src/api/helpers/profile-helper.ts @@ -271,7 +271,7 @@ export async function createSystemSchemas({ return null; } catch (error) { logger.error(error, ['GUARDIAN_SERVICE'], logId); - return null; + throw error; } } @@ -465,8 +465,7 @@ export async function createUserProfile({ await dataBaseServer.update(DidDocumentCollection, null, didRow); } catch (error) { logger.error(error, ['GUARDIAN_SERVICE'], logId); - // didRow.status = DidDocumentStatus.FAILED; - // await new DataBaseHelper(DidDocumentCollection).update(didRow); + throw error; } notifier.completeStep(STEP_PUBLISH_DID); // ------------------------ @@ -499,11 +498,13 @@ export async function createUserProfile({ notifier.startStep(STEP_PUBLISH_VC); logger.info('Create VC Document', ['GUARDIAN_SERVICE'], logId); + if (!schemaObject) { + throw new Error(`System schema for entity "${entity}" not found.`); + } + let credentialSubject: any = { ...vcDocument }; credentialSubject.id = userDID; - if (schemaObject) { - credentialSubject = SchemaHelper.updateObjectContext(schemaObject, credentialSubject); - } + credentialSubject = SchemaHelper.updateObjectContext(schemaObject, credentialSubject); const vcObject = await vcHelper.createVerifiableCredential(credentialSubject, currentDidDocument, null, null); const vcMessage = new VCMessage(MessageAction.CreateVC); diff --git a/queue-service/src/queue-service/queue-service.ts b/queue-service/src/queue-service/queue-service.ts index 0a25a508ae..5d54b0a936 100644 --- a/queue-service/src/queue-service/queue-service.ts +++ b/queue-service/src/queue-service/queue-service.ts @@ -55,18 +55,14 @@ export class QueueService extends NatsService { } else { task.isError = true; task.errorReason = data.error; - if (!task.interception) { - await this.completeTaskInQueue(data.id, data.data, data.error); - } + await this.completeTaskInQueue(data.id, data.data, data.error); } } else { task.attempt = 0; task.isError = true; task.errorReason = data.error; - if (!task.interception) { - await this.completeTaskInQueue(data.id, data.data, data.error); - } + await this.completeTaskInQueue(data.id, data.data, data.error); } await dataBaseServer.save(TaskEntity, task); diff --git a/worker-service/src/api/ipfs-client-class.ts b/worker-service/src/api/ipfs-client-class.ts index 50f84682a9..64c5a86f48 100644 --- a/worker-service/src/api/ipfs-client-class.ts +++ b/worker-service/src/api/ipfs-client-class.ts @@ -63,6 +63,16 @@ export class IpfsClientClass { } } + /** + * Guard against an uninitialized client. + * @private + */ + private assertClientReady(): void { + if (!this.client) { + throw new Error(`IPFS client not initialized (provider="${this.IPFS_PROVIDER}"); check IPFS_PROVIDER and credentials.`); + } + } + /** * Create ipfs client * @private @@ -121,6 +131,7 @@ export class IpfsClientClass { * @param beforeCallback */ public async addFile(file: Buffer): Promise { + this.assertClientReady(); let cid: string; switch (this.IPFS_PROVIDER) { case IpfsProvider.WEB3STORAGE: { @@ -152,6 +163,7 @@ export class IpfsClientClass { * @param cid */ public async deleteCid(cid: string): Promise { + this.assertClientReady(); switch (this.IPFS_PROVIDER) { case IpfsProvider.LOCAL: { await this.client.pin.rm(cid);