diff --git a/frontend/src/metabase/entities/data-apps/utils.ts b/frontend/src/metabase/entities/data-apps/utils.ts
index 6e91410f0b88f3d9065106f66ba8e0d6450644e0..90b1628b204a22b127d6d24245bf4cf02b3e248a 100644
--- a/frontend/src/metabase/entities/data-apps/utils.ts
+++ b/frontend/src/metabase/entities/data-apps/utils.ts
@@ -9,7 +9,10 @@ export function isDataAppCollection(collection: Collection) {
   return typeof collection.app_id === "number";
 }
 
-export function getDataAppHomePageId(pages: Dashboard[]) {
+export function getDataAppHomePageId(dataApp: DataApp, pages: Dashboard[]) {
+  if (dataApp.dashboard_id) {
+    return dataApp.dashboard_id;
+  }
   const [firstPage] = _.sortBy(pages, "name");
   return firstPage?.id;
 }
diff --git a/frontend/src/metabase/entities/data-apps/utils.unit.spec.ts b/frontend/src/metabase/entities/data-apps/utils.unit.spec.ts
index 200c38aab463bc0094d3213eef612433038ec552..47cb2c587ba4e08b513ebfdfe963d71be1295e6a 100644
--- a/frontend/src/metabase/entities/data-apps/utils.unit.spec.ts
+++ b/frontend/src/metabase/entities/data-apps/utils.unit.spec.ts
@@ -1,18 +1,45 @@
-import { createMockDataAppPage } from "metabase-types/api/mocks";
+import {
+  createMockDataApp,
+  createMockDataAppPage,
+} from "metabase-types/api/mocks";
 import { getDataAppHomePageId } from "./utils";
 
 describe("data app utils", () => {
+  const dataAppWithoutHomepage = createMockDataApp({ dashboard_id: null });
+  const dataAppWithHomepage = createMockDataApp({ dashboard_id: 3 });
+
+  const page1 = createMockDataAppPage({ id: 1, name: "A" });
+  const page2 = createMockDataAppPage({ id: 2, name: "B" });
+  const page3 = createMockDataAppPage({ id: 3, name: "C" });
+  const pages = [page1, page2, page3];
+
   describe("getDataAppHomePageId", () => {
-    it("returns fist page in alphabetical order", () => {
-      const page1 = createMockDataAppPage({ id: 1, name: "A" });
-      const page2 = createMockDataAppPage({ id: 2, name: "B" });
-      const page3 = createMockDataAppPage({ id: 3, name: "C" });
+    describe("with explicit homepage", () => {
+      it("returns data app's dashboard_id", () => {
+        expect(getDataAppHomePageId(dataAppWithHomepage, pages)).toEqual(
+          dataAppWithHomepage.dashboard_id,
+        );
+      });
 
-      expect(getDataAppHomePageId([page2, page1, page3])).toEqual(page1.id);
+      it("returns data app's dashboard_id even if page list is empty", () => {
+        expect(getDataAppHomePageId(dataAppWithHomepage, [])).toEqual(
+          dataAppWithHomepage.dashboard_id,
+        );
+      });
     });
 
-    it("returns undefined when there're no pages", () => {
-      expect(getDataAppHomePageId([])).toBeUndefined();
+    describe("without explicit homepage", () => {
+      it("returns fist page in alphabetical order", () => {
+        expect(getDataAppHomePageId(dataAppWithoutHomepage, pages)).toEqual(
+          page1.id,
+        );
+      });
+
+      it("returns undefined when there're no pages", () => {
+        expect(
+          getDataAppHomePageId(dataAppWithoutHomepage, []),
+        ).toBeUndefined();
+      });
     });
   });
 });
diff --git a/frontend/src/metabase/nav/containers/MainNavbar/DataAppNavbar/DataAppNavbarContainer.tsx b/frontend/src/metabase/nav/containers/MainNavbar/DataAppNavbar/DataAppNavbarContainer.tsx
index 0cb84c5dc9acb7750e12120c284fa7e0073b7919..1b158c056a5b4321762b69ff55c917f8a0ab6748 100644
--- a/frontend/src/metabase/nav/containers/MainNavbar/DataAppNavbar/DataAppNavbarContainer.tsx
+++ b/frontend/src/metabase/nav/containers/MainNavbar/DataAppNavbar/DataAppNavbarContainer.tsx
@@ -64,13 +64,13 @@ function DataAppNavbarContainer({
       return [
         {
           type: "data-app-page",
-          id: getDataAppHomePageId(pages),
+          id: getDataAppHomePageId(dataApp, pages),
         },
       ];
     }
 
     return selectedItems;
-  }, [pages, selectedItems]);
+  }, [dataApp, pages, selectedItems]);
 
   const onEditAppSettings = useCallback(() => {
     setModal("MODAL_APP_SETTINGS");
diff --git a/frontend/src/metabase/writeback/containers/DataAppLanding.tsx b/frontend/src/metabase/writeback/containers/DataAppLanding.tsx
index 3a5e48f79e32a2fa87c7a399202d01e2ce95a0a5..d30ea81023e2b006e0498ca861b2f5b4fe2d1e80 100644
--- a/frontend/src/metabase/writeback/containers/DataAppLanding.tsx
+++ b/frontend/src/metabase/writeback/containers/DataAppLanding.tsx
@@ -47,7 +47,7 @@ const DataAppLanding = ({
         loadingAndErrorWrapper={false}
       >
         {({ list: pages = [] }: { list: any[] }) => {
-          const homepageId = getDataAppHomePageId(pages);
+          const homepageId = getDataAppHomePageId(dataApp, pages);
           return homepageId ? (
             <DashboardApp
               dashboardId={homepageId}