From 98114c5591b329750a03147b2dd2427a957d2066 Mon Sep 17 00:00:00 2001 From: Krishna Acondy Date: Tue, 11 May 2021 08:23:40 +0100 Subject: [PATCH] fix(job-state-poll): Continue polling for job state despite errored requests --- src/SASViyaApiClient.ts | 42 +++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index 8b526c2..87aded9 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -594,15 +594,16 @@ export class SASViyaApiClient { } } - const { result: createFolderResponse } = - await this.requestClient.post( - `/folders/folders?parentFolderUri=${parentFolderUri}`, - { - name: folderName, - type: 'folder' - }, - accessToken - ) + const { + result: createFolderResponse + } = await this.requestClient.post( + `/folders/folders?parentFolderUri=${parentFolderUri}`, + { + name: folderName, + type: 'folder' + }, + accessToken + ) // update folder map with newly created folder. await this.populateFolderMap( @@ -874,7 +875,9 @@ export class SASViyaApiClient { throw new Error(`URI of job definition was not found.`) } - const { result: jobDefinition } = await this.requestClient + const { + result: jobDefinition + } = await this.requestClient .get( `${this.serverUrl}${jobDefinitionLink.href}`, accessToken @@ -1107,7 +1110,11 @@ export class SASViyaApiClient { this.debug ) .catch((err) => { - throw prefixMessage(err, 'Error while getting job state. ') + console.error( + 'Error fetching job state. Starting poll, assuming job to be running.', + err + ) + return { result: 'running' } }) const currentState = state.trim() @@ -1134,10 +1141,17 @@ export class SASViyaApiClient { this.debug ) .catch((err) => { - throw prefixMessage( - err, - 'Error while getting job state after interval. ' + if (pollCount >= MAX_POLL_COUNT) { + throw prefixMessage( + err, + 'Error while getting job state after interval. ' + ) + } + console.error( + 'Error fetching job state. Resuming poll, assuming job to be running.', + err ) + return { result: 'running' } }) postedJobState = jobState.trim()