diff --git a/e2e/test/scenarios/embedding-sdk/interactive-question.cy.spec.ts b/e2e/test/scenarios/embedding-sdk/interactive-question.cy.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..21590930a2d2fff8eb8856dbba0bd1b7282f459d
--- /dev/null
+++ b/e2e/test/scenarios/embedding-sdk/interactive-question.cy.spec.ts
@@ -0,0 +1,101 @@
+import { SAMPLE_DATABASE } from "e2e/support/cypress_sample_database";
+import {
+  createQuestion,
+  popover,
+  restore,
+  setTokenFeatures,
+  visitFullAppEmbeddingUrl,
+} from "e2e/support/helpers";
+import {
+  EMBEDDING_SDK_STORY_HOST,
+  describeSDK,
+} from "e2e/support/helpers/e2e-embedding-sdk-helpers";
+import {
+  JWT_SHARED_SECRET,
+  setupJwt,
+} from "e2e/support/helpers/e2e-jwt-helpers";
+
+const { ORDERS, ORDERS_ID } = SAMPLE_DATABASE;
+
+describeSDK("scenarios > embedding-sdk > interactive-question", () => {
+  beforeEach(() => {
+    restore();
+    cy.signInAsAdmin();
+    setTokenFeatures("all");
+    setupJwt();
+    cy.request("PUT", "/api/setting", {
+      "enable-embedding-sdk": true,
+    });
+
+    createQuestion(
+      {
+        name: "47563",
+        query: {
+          "source-table": ORDERS_ID,
+          aggregation: [["max", ["field", ORDERS.QUANTITY, null]]],
+          breakout: [["field", ORDERS.PRODUCT_ID, null]],
+          limit: 2,
+        },
+      },
+      { wrapId: true },
+    );
+
+    cy.signOut();
+
+    cy.intercept("GET", "/api/card/*").as("getCard");
+    cy.intercept("GET", "/api/user/current").as("getUser");
+    cy.intercept("POST", "/api/card/*/query").as("cardQuery");
+
+    cy.get("@questionId").then(questionId => {
+      visitFullAppEmbeddingUrl({
+        url: EMBEDDING_SDK_STORY_HOST,
+        qs: {
+          id: "embeddingsdk-interactivequestion--default",
+          viewMode: "story",
+        },
+        onBeforeLoad: (window: any) => {
+          window.JWT_SHARED_SECRET = JWT_SHARED_SECRET;
+          window.METABASE_INSTANCE_URL = Cypress.config().baseUrl;
+          window.QUESTION_ID = questionId;
+        },
+      });
+    });
+
+    cy.wait("@getUser").then(({ response }) => {
+      expect(response?.statusCode).to.equal(200);
+    });
+
+    cy.wait("@getCard").then(({ response }) => {
+      expect(response?.statusCode).to.equal(200);
+    });
+  });
+
+  it("should show question content", () => {
+    cy.get("#metabase-sdk-root")
+      .should("be.visible")
+      .within(() => {
+        cy.findByText("Product ID").should("be.visible");
+        cy.findByText("Max of Quantity").should("be.visible");
+      });
+  });
+
+  it("should not fail on aggregated question drill", () => {
+    cy.wait("@cardQuery").then(({ response }) => {
+      expect(response?.statusCode).to.equal(202);
+    });
+
+    cy.findAllByTestId("cell-data").last().click();
+
+    cy.on("uncaught:exception", error => {
+      expect(
+        error.message.includes(
+          "Error converting :aggregation reference: no aggregation at index 0",
+        ),
+      ).to.be.false;
+    });
+
+    popover().findByText("See these Orders").click();
+
+    cy.icon("warning").should("not.exist");
+  });
+});
diff --git a/enterprise/frontend/src/embedding-sdk/components/public/InteractiveQuestion/InteractiveQuestion.stories.tsx b/enterprise/frontend/src/embedding-sdk/components/public/InteractiveQuestion/InteractiveQuestion.stories.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..a9c05f1ea0e13a9887647a2aa5f580984ce2a3bf
--- /dev/null
+++ b/enterprise/frontend/src/embedding-sdk/components/public/InteractiveQuestion/InteractiveQuestion.stories.tsx
@@ -0,0 +1,33 @@
+import type { StoryFn } from "@storybook/react";
+import type { ComponentProps } from "react";
+
+import { CommonSdkStoryWrapper } from "embedding-sdk/test/CommonSdkStoryWrapper";
+
+import { InteractiveQuestion } from "./InteractiveQuestion";
+
+const QUESTION_ID = (window as any).QUESTION_ID || 12;
+
+type InteractiveQuestionComponentProps = ComponentProps<
+  typeof InteractiveQuestion
+>;
+
+export default {
+  title: "EmbeddingSDK/InteractiveQuestion",
+  component: InteractiveQuestion,
+  parameters: {
+    layout: "fullscreen",
+  },
+  decorators: [CommonSdkStoryWrapper],
+};
+
+const Template: StoryFn<InteractiveQuestionComponentProps> = args => {
+  return <InteractiveQuestion {...args} />;
+};
+
+export const Default = {
+  render: Template,
+
+  args: {
+    questionId: QUESTION_ID,
+  },
+};
diff --git a/enterprise/frontend/src/embedding-sdk/hooks/private/use-load-question.ts b/enterprise/frontend/src/embedding-sdk/hooks/private/use-load-question.ts
index 13cfbd2fa60bf8a4dffa39df081447f9bda828b3..14a788379c7417e321609351c9b78c0a13b9926b 100644
--- a/enterprise/frontend/src/embedding-sdk/hooks/private/use-load-question.ts
+++ b/enterprise/frontend/src/embedding-sdk/hooks/private/use-load-question.ts
@@ -131,6 +131,7 @@ export function useLoadQuestion({
           originalQuestion,
           cancelDeferred: deferred(),
           onQuestionChange: question => setQuestionState({ question }),
+          onClearQueryResults: () => setQuestionState({ queryResults: [null] }),
         }),
       );
 
diff --git a/enterprise/frontend/src/embedding-sdk/lib/interactive-question/run-question-on-navigate.ts b/enterprise/frontend/src/embedding-sdk/lib/interactive-question/run-question-on-navigate.ts
index fc4e4cd35a6f3e3657544f82ffba8ba7d99ed723..8661e9bb940acce58b303c10a1b9cbbb53678f64 100644
--- a/enterprise/frontend/src/embedding-sdk/lib/interactive-question/run-question-on-navigate.ts
+++ b/enterprise/frontend/src/embedding-sdk/lib/interactive-question/run-question-on-navigate.ts
@@ -14,6 +14,7 @@ import type { Dispatch, GetState } from "metabase-types/store";
 interface RunQuestionOnNavigateParams extends NavigateToNewCardParams {
   originalQuestion?: Question;
   onQuestionChange: (question: Question) => void;
+  onClearQueryResults: () => void;
 }
 
 export const runQuestionOnNavigateSdk =
@@ -28,6 +29,7 @@ export const runQuestionOnNavigateSdk =
       originalQuestion,
       cancelDeferred,
       onQuestionChange,
+      onClearQueryResults,
     } = params;
 
     // Do not reload questions with breakouts when clicking on a legend item
@@ -40,6 +42,7 @@ export const runQuestionOnNavigateSdk =
       nextCard = await loadCard(nextCard.id, { dispatch, getState });
     } else {
       nextCard = getCardAfterVisualizationClick(nextCard, previousCard);
+      onClearQueryResults();
     }
 
     // Optimistic update the UI before we re-fetch the query metadata.