Skip to content

Commit 845c8d3

Browse files
committed
fix: correct navigate_page_history error handling
Per puppeteer/puppeteer#14160, null return from goBack/goForward indicates successful navigation without network request, not failure. Puppeteer throws error when no history exists. Simplified to append error.message as suggested by @OrKoN.
1 parent 20925b7 commit 845c8d3

File tree

2 files changed

+13
-28
lines changed

2 files changed

+13
-28
lines changed

src/tools/pages.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -144,32 +144,15 @@ export const navigatePageHistory = defineTool({
144144
};
145145

146146
try {
147-
let result;
148147
if (request.params.navigate === 'back') {
149-
result = await page.goBack(options);
148+
await page.goBack(options);
150149
} else {
151-
result = await page.goForward(options);
152-
}
153-
154-
// If result is null, navigation wasn't possible (no history)
155-
if (result === null) {
156-
const direction =
157-
request.params.navigate === 'back' ? 'previous' : 'next';
158-
response.appendResponseLine(
159-
`Cannot navigate ${request.params.navigate}, no ${direction} page in history.`,
160-
);
150+
await page.goForward(options);
161151
}
162152
} catch (error) {
163-
// Provide more specific error messages based on the error type
164-
if (error.message && error.message.includes('timeout')) {
165-
response.appendResponseLine(
166-
`Navigation ${request.params.navigate} timed out after ${request.params.timeout || 30000}ms.`,
167-
);
168-
} else {
169-
response.appendResponseLine(
170-
`Unable to navigate ${request.params.navigate}: ${error.message || 'Unknown error occurred'}`,
171-
);
172-
}
153+
response.appendResponseLine(
154+
`Unable to navigate ${request.params.navigate} in currently selected page. ${error.message}`,
155+
);
173156
}
174157

175158
response.setIncludePages(true);

tests/tools/pages.test.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,10 @@ describe('pages', () => {
163163
context,
164164
);
165165

166-
assert.equal(
167-
response.responseLines.at(0),
168-
'Unable to navigate forward in currently selected page.',
166+
assert.ok(
167+
response.responseLines
168+
.at(0)
169+
?.startsWith('Unable to navigate forward in currently selected page.'),
169170
);
170171
assert.ok(response.includePages);
171172
});
@@ -178,9 +179,10 @@ describe('pages', () => {
178179
context,
179180
);
180181

181-
assert.equal(
182-
response.responseLines.at(0),
183-
'Unable to navigate back in currently selected page.',
182+
assert.ok(
183+
response.responseLines
184+
.at(0)
185+
?.startsWith('Unable to navigate back in currently selected page.'),
184186
);
185187
assert.ok(response.includePages);
186188
});

0 commit comments

Comments
 (0)