diff --git a/lib/classes/Variables.js b/lib/classes/Variables.js index 59f3c7b81..abd913afa 100644 --- a/lib/classes/Variables.js +++ b/lib/classes/Variables.js @@ -833,7 +833,7 @@ class Variables { return BbPromise.resolve(plainText); }, err => { - if (err.statusCode !== 400) { + if (!err.providerError || err.providerError.statusCode !== 400) { return BbPromise.reject(new this.serverless.classes.Error(err.message)); } diff --git a/lib/classes/Variables.test.js b/lib/classes/Variables.test.js index 05800ca09..73d7bef1a 100644 --- a/lib/classes/Variables.test.js +++ b/lib/classes/Variables.test.js @@ -1229,7 +1229,9 @@ module.exports = { const awsProvider = new AwsProvider(serverless, options); const param = '/some/path/to/invalidparam'; const property = `\${ssm:${param}}`; - const error = Object.assign(new Error(`Parameter ${param} not found.`), { statusCode: 400 }); + const error = Object.assign(new Error(`Parameter ${param} not found.`), { + providerError: { statusCode: 400 }, + }); const requestStub = sinon .stub(awsProvider, 'request') .callsFake(() => BbPromise.reject(error)); @@ -2381,7 +2383,9 @@ module.exports = { }); }); it('should return undefined if SSM parameter does not exist', () => { - const error = Object.assign(new Error(`Parameter ${param} not found.`), { statusCode: 400 }); + const error = Object.assign(new Error(`Parameter ${param} not found.`), { + providerError: { statusCode: 400 }, + }); const requestStub = sinon .stub(awsProvider, 'request') .callsFake(() => BbPromise.reject(error));