diff --git a/src/common/helper.js b/src/common/helper.js index 44eba396..0bae077b 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -879,20 +879,26 @@ async function listChallengesByMember (memberId) { // get search is paginated, we need to get all pages' data let page = 1 while (true) { - const result = await axios.get(`${config.RESOURCES_API_URL}/${memberId}/challenges`, { - headers: { Authorization: `Bearer ${token}` }, - params: { - page, - perPage: 10000 - } - }) + let result = {}; + try { + result = await axios.get(`${config.RESOURCES_API_URL}/${memberId}/challenges`, { + headers: { Authorization: `Bearer ${token}` }, + params: { + page, + perPage: 10000 + } + }) + } catch (e) { + // only log the error but don't throw it, so the following logic can still be executed. + logger.debug(`Failed to get challenges that accessible to the memberId ${memberId}`, e) + } const ids = result.data || [] if (ids.length === 0) { break } allIds = allIds.concat(ids) page += 1 - if (result.headers['x-total-pages'] && page > Number(result.headers['x-total-pages'])) { + if (result.headers && result.headers['x-total-pages'] && page > Number(result.headers['x-total-pages'])) { break } }