diff --git a/src/dns/cloudflare.js b/src/dns/cloudflare.js index 6167aee5b..ac5740420 100644 --- a/src/dns/cloudflare.js +++ b/src/dns/cloudflare.js @@ -39,9 +39,14 @@ function translateRequestError(result, callback) { if (result.statusCode === 404) return callback(new BoxError(BoxError.NOT_FOUND, util.format('%s %j', result.statusCode, 'API does not exist'))); if (result.statusCode === 422) return callback(new BoxError(BoxError.BAD_FIELD, result.body.message)); - if ((result.statusCode === 400 || result.statusCode === 401 || result.statusCode === 403) && result.body.errors.length > 0) { - let error = result.body.errors[0]; - let message = `message: ${error.message} statusCode: ${result.statusCode} code:${error.code}`; + if (result.statusCode === 400 || result.statusCode === 401 || result.statusCode === 403) { + let message = 'Unknown error'; + if (typeof result.body.error === 'string') { + message = `message: ${result.body.error} statusCode: ${result.statusCode}`; + } else if (Array.isArray(result.body.errors) && result.body.errors.length > 0) { + let error = result.body.errors[0]; + message = `message: ${error.message} statusCode: ${result.statusCode} code:${error.code}`; + } return callback(new BoxError(BoxError.ACCESS_DENIED, message)); }