diff --git a/src/version.js b/src/version.js index 304aef7760a311ce5f5b34beeef0056cd65f9ccd..29cb2fc6f67ede83b9c077a33cdf9e6584a7154a 100644 --- a/src/version.js +++ b/src/version.js @@ -45,8 +45,15 @@ export const versionUpdateGauge = new Gauge({ export async function fetchVersionInfo () { const versions = await Promise.all(configMap.urls.map(async baseUrl => { try { - const response = await fetch(new URL('meta.json', baseUrl), { cache: 'no-store' }) - if (!response.ok) throw new Error() + const response = await fetch(new URL('meta.json', baseUrl), { cache: 'no-store' }).catch((err) => { + logger.error(err) + logger.warn(`[Version] Failed to load meta.json from UI container at ${baseUrl}.`) + throw new Error() + }) + if (!response.ok) { + logger.warn(`[Version] Failed to load meta.json from ${response.url} (Status: ${response.status}: ${response.statusText})`) + throw new Error() + } if (response.headers.get('version')) return response.headers.get('version') @@ -55,10 +62,18 @@ export async function fetchVersionInfo () { if (!version) throw new Error() return version } catch (err) { - logger.warn(`[Version] UI container at ${baseUrl} does not have meta.json. Fall back to version hash based on manifest.`) + logger.warn('[Version] Fall back to version hash based on manifest.') + } + + const response = await fetch(new URL('manifest.json', baseUrl), { cache: 'no-store' }).catch((err) => { + logger.error(err) + logger.warn(`[Version] Failed to load manifest.json from UI container at ${baseUrl}.`) + throw new Error(`Cannot fetch manifest.json from ${baseUrl}`) + }) + if (!response.ok) { + logger.warn(`[Version] Failed to load manifest.json from ${response.url} (Status: ${response.status}: ${response.statusText})`) + throw new Error(`Cannot fetch manifest.json from ${baseUrl}`) } - const response = await fetch(new URL('manifest.json', baseUrl), { cache: 'no-store' }) - if (!response.ok) throw new Error(`Cannot fetch manifest.json from ${baseUrl}`) const manifest = await response.json() return hash(manifest) }))