diff --git a/lib/datasource/docker.js b/lib/datasource/docker.js index 779688957cb504e59f3aeb32af67ebc997e12596..c836f91af1786f52255ace4829d9da49856a1876 100644 --- a/lib/datasource/docker.js +++ b/lib/datasource/docker.js @@ -72,6 +72,10 @@ async function getAuthHeaders(registry, repository) { logger.debug({ err }); return null; } + if (err.statusCode === 429) { + logger.warn({ err }, 'docker registry failure: too many requests'); + throw new Error('registry-failure'); + } if (err.statusCode >= 500 && err.statusCode < 600) { logger.warn({ err }, 'docker registry failure: internal error'); throw new Error('registry-failure'); @@ -132,6 +136,10 @@ async function getDigest(config, newValue) { ); return null; } + if (err.statusCode === 429) { + logger.warn({ err }, 'docker registry failure: too many requests'); + throw new Error('registry-failure'); + } if (err.statusCode >= 500 && err.statusCode < 600) { logger.warn( { @@ -208,6 +216,10 @@ async function getPkgReleases(purl) { logger.info({ purl }, 'Not authorised to look up docker tags'); return null; } + if (err.statusCode === 429) { + logger.warn({ purl, err }, 'docker registry failure: too many requests'); + throw new Error('registry-failure'); + } if (err.statusCode >= 500 && err.statusCode < 600) { logger.warn({ purl, err }, 'docker registry failure: internal error'); throw new Error('registry-failure');