diff --git a/src/frontend/app/store/effects/api.effects.ts b/src/frontend/app/store/effects/api.effects.ts index 12c45493fd..a53dde1996 100644 --- a/src/frontend/app/store/effects/api.effects.ts +++ b/src/frontend/app/store/effects/api.effects.ts @@ -222,13 +222,21 @@ export class APIEffect { const endpoint = resData ? resData[cfGuid] as JetStreamError : null; const succeeded = !endpoint || !endpoint.error; const errorCode = endpoint && endpoint.error ? endpoint.error.statusCode.toString() : '500'; - const errorResponse = endpoint ? endpoint.errorResponse : { code: 0, description: 'Unknown', error_code: '0' }; + let errorResponse = null; + if (!succeeded) { + errorResponse = endpoint && (typeof endpoint.errorResponse !== 'string') ? + endpoint.errorResponse : {} as JetStreamCFErrorResponse; + // Use defaults if values are not provided + errorResponse.code = errorResponse.code || 0; + errorResponse.description = errorResponse.description || 'Unknown'; + errorResponse.error_code = errorResponse.error_code || '0'; + } return { error: !succeeded, errorCode: succeeded ? '200' : errorCode, guid: cfGuid, url: action.options.url, - errorResponse: succeeded ? null : errorResponse, + errorResponse: errorResponse, }; }); }