diff --git a/packages/html-reporter/src/headerView.tsx b/packages/html-reporter/src/headerView.tsx
index 9926208711..a2aac9a72f 100644
--- a/packages/html-reporter/src/headerView.tsx
+++ b/packages/html-reporter/src/headerView.tsx
@@ -60,7 +60,7 @@ export const HeaderView: React.FC {
const filterText = e.target.value;
if (filterText)
- navigate(`#?` + new URLSearchParams({ q: filterText }));
+ setFilterText(filterText);
else
navigate('#');
}}>
diff --git a/tests/playwright-test/reporter-html.spec.ts b/tests/playwright-test/reporter-html.spec.ts
index d6c67d0c6e..129d87792a 100644
--- a/tests/playwright-test/reporter-html.spec.ts
+++ b/tests/playwright-test/reporter-html.spec.ts
@@ -2381,6 +2381,7 @@ for (const useIntermediateMergeReport of [true, false] as const) {
await showReport();
const searchInput = page.locator('.subnav-search-input');
await searchInput.fill('a.test.js:3:11');
+ await searchInput.press('Enter');
await page.waitForURL(url => new URLSearchParams(url.hash.slice(1)).get('q') === 'a.test.js:3:11');
await searchInput.clear();
await page.waitForURL(url => !new URLSearchParams(url.hash.slice(1)).has('q'));