fix: retry observe navigation timeouts
This commit is contained in:
@@ -2044,7 +2044,7 @@ async function artifactSummary(artifacts) {
|
|||||||
|
|
||||||
function compactManifest(value) {
|
function compactManifest(value) {
|
||||||
if (!value) return null;
|
if (!value) return null;
|
||||||
return { jobId: value.jobId, stateDir: value.stateDir, baseUrl: value.baseUrl, targetPath: value.targetPath, startedAt: value.startedAt, status: value.status, pageAuthority: value.pageAuthority ?? null, sampling: value.sampling, pageProvenance: value.pageProvenance ?? null, safety: value.safety };
|
return { jobId: value.jobId, stateDir: value.stateDir, baseUrl: value.baseUrl, targetPath: value.targetPath, startedAt: value.startedAt, status: value.status, pageAuthority: value.pageAuthority ?? null, navigation: value.navigation ?? null, sampling: value.sampling, pageProvenance: value.pageProvenance ?? null, safety: value.safety };
|
||||||
}
|
}
|
||||||
|
|
||||||
function compactHeartbeat(value) {
|
function compactHeartbeat(value) {
|
||||||
|
|||||||
@@ -1054,7 +1054,7 @@ async function gotoTarget(rawTarget) {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
const message = error instanceof Error ? error.message : String(error);
|
const message = error instanceof Error ? error.message : String(error);
|
||||||
attempts.push({ attempt, ok: false, failureKind: navigationFailureKind(message), message: redactErrorMessage(message), readiness: error?.navigationReadiness ?? null });
|
attempts.push({ attempt, ok: false, failureKind: navigationFailureKind(message), message: redactErrorMessage(message), readiness: error?.navigationReadiness ?? null });
|
||||||
if (/workbench-app-not-ready/iu.test(message)) {
|
if (/workbench-app-not-ready|navigation timeout|page\.goto:\s*timeout|timeout\s+\d+ms\s+exceeded/iu.test(message)) {
|
||||||
const lateReadiness = await waitForTargetPageReady(page, target, { timeoutMs: 5000 }).catch(() => null);
|
const lateReadiness = await waitForTargetPageReady(page, target, { timeoutMs: 5000 }).catch(() => null);
|
||||||
if (lateReadiness?.ok) {
|
if (lateReadiness?.ok) {
|
||||||
const pageProvenance = await refreshPageProvenance("goto-late-ready", null);
|
const pageProvenance = await refreshPageProvenance("goto-late-ready", null);
|
||||||
@@ -1188,7 +1188,7 @@ function compactPageProvenance(value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isRetryableNavigationError(message) {
|
function isRetryableNavigationError(message) {
|
||||||
return /net::ERR_NETWORK_CHANGED|net::ERR_ABORTED|net::ERR_CONNECTION_RESET|net::ERR_NAME_NOT_RESOLVED|Navigation timeout|workbench-app-not-ready/iu.test(String(message || ""));
|
return /net::ERR_NETWORK_CHANGED|net::ERR_ABORTED|net::ERR_CONNECTION_RESET|net::ERR_NAME_NOT_RESOLVED|Navigation timeout|page\.goto:\s*timeout|timeout\s+\d+ms\s+exceeded|workbench-app-not-ready/iu.test(String(message || ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
function navigationFailureKind(message) {
|
function navigationFailureKind(message) {
|
||||||
@@ -1197,7 +1197,7 @@ function navigationFailureKind(message) {
|
|||||||
if (/net::ERR_ABORTED/iu.test(text)) return "net::ERR_ABORTED";
|
if (/net::ERR_ABORTED/iu.test(text)) return "net::ERR_ABORTED";
|
||||||
if (/net::ERR_CONNECTION_RESET/iu.test(text)) return "net::ERR_CONNECTION_RESET";
|
if (/net::ERR_CONNECTION_RESET/iu.test(text)) return "net::ERR_CONNECTION_RESET";
|
||||||
if (/net::ERR_NAME_NOT_RESOLVED/iu.test(text)) return "net::ERR_NAME_NOT_RESOLVED";
|
if (/net::ERR_NAME_NOT_RESOLVED/iu.test(text)) return "net::ERR_NAME_NOT_RESOLVED";
|
||||||
if (/Navigation timeout/iu.test(text)) return "navigation-timeout";
|
if (/Navigation timeout|page\.goto:\s*timeout|timeout\s+\d+ms\s+exceeded/iu.test(text)) return "navigation-timeout";
|
||||||
if (/workbench-app-not-ready/iu.test(text)) return "workbench-app-not-ready";
|
if (/workbench-app-not-ready/iu.test(text)) return "workbench-app-not-ready";
|
||||||
return "navigation-error";
|
return "navigation-error";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user