diff --git a/src/plugins/dashboard/public/application/dashboard_app.tsx b/src/plugins/dashboard/public/application/dashboard_app.tsx
index 7ea181715717bc..6955365ebca3f1 100644
--- a/src/plugins/dashboard/public/application/dashboard_app.tsx
+++ b/src/plugins/dashboard/public/application/dashboard_app.tsx
@@ -265,6 +265,13 @@ export function DashboardApp({
};
}, [dashboardStateManager, dashboardContainer, onAppLeave, embeddable]);
+ // clear search session when leaving dashboard route
+ useEffect(() => {
+ return () => {
+ data.search.session.clear();
+ };
+ }, [data.search.session]);
+
return (
{savedDashboard && dashboardStateManager && dashboardContainer && viewMode && (
diff --git a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts b/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts
index 7e878e763bfc1c..3e417551c3cb94 100644
--- a/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts
+++ b/x-pack/test/send_search_to_background_integration/tests/apps/dashboard/async_search/send_to_background.ts
@@ -96,6 +96,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
// should leave session state untouched
await PageObjects.dashboard.switchToEditMode();
await searchSessions.expectState('restored');
+
+ // navigating to a listing page clears the session
+ await PageObjects.dashboard.gotoDashboardLandingPage();
+ await searchSessions.missingOrFail();
});
});
}