Skip to content

Commit 3ad3618

Browse files
add retry if disallowed status
1 parent c17d85b commit 3ad3618

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/lib/processSnapshot.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,30 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
178178
discoveryErrors.browsers[globalBrowser][globalViewport]?.push(data);
179179
}
180180

181+
let responseOfRetry
182+
ctx.log.debug(`Resource had a disallowed status ${requestUrl} fetching from server again`);
183+
responseOfRetry = await page.request.fetch(request, requestOptions);
184+
body = await responseOfRetry.body();
185+
186+
if (responseOfRetry && responseOfRetry.status() && ALLOWED_STATUSES.includes(responseOfRetry.status())) {
187+
cache[requestUrl] = {
188+
body: body.toString('base64'),
189+
type: responseOfRetry.headers()['content-type']
190+
}
191+
route.fulfill({
192+
status: responseOfRetry.status(),
193+
headers: responseOfRetry.headers(),
194+
body: body,
195+
});
196+
} else {
197+
ctx.log.debug(`Resource had a disallowed status for retry as well ${requestUrl} disallowed status [${responseOfRetry.status()}]`);
198+
if (responseOfRetry && responseOfRetry.headers()) {
199+
const responseHeadersRetry = responseOfRetry.headers();
200+
ctx.log.debug(`Response headers for ${requestUrl}: ${JSON.stringify(responseHeadersRetry, null, 2)}`);
201+
}
202+
}
203+
204+
181205
} else {
182206
ctx.log.debug(`Handling request ${requestUrl}\n - content-type ${response.headers()['content-type']}`);
183207

0 commit comments

Comments
 (0)