diff --git a/engineering/engineering-wechat-mini-program-developer.md b/engineering/engineering-wechat-mini-program-developer.md index e4e80463..0d21265a 100644 --- a/engineering/engineering-wechat-mini-program-developer.md +++ b/engineering/engineering-wechat-mini-program-developer.md @@ -106,7 +106,12 @@ const request = (options) => { if (res.statusCode >= 200 && res.statusCode < 300) { resolve(res.data); } else { - reject({ code: res.statusCode, message: res.data.message || 'Request failed' }); + // Error bodies may be empty, plain text, or a gateway HTML page. + // Do not throw inside the success callback and leave the Promise pending. + const message = res.data && typeof res.data === 'object' && + typeof res.data.message === 'string' && res.data.message + ? res.data.message : 'Request failed'; + reject({ code: res.statusCode, message }); } }, fail: (err) => {