diff --git a/addons/board/static/src/js/board_view.js b/addons/board/static/src/js/board_view.js
index 0aa5f3d63a80a7b2cd1f2afed13ef9419fb4ddde..daa84329ac55cb45eb39889ee25e862bc7202068 100644
--- a/addons/board/static/src/js/board_view.js
+++ b/addons/board/static/src/js/board_view.js
@@ -174,6 +174,9 @@ var BoardRenderer = FormRenderer.extend({
      */
     changeLayout: function (layout) {
         var $dashboard = this.$('.oe_dashboard');
+        if (!$dashboard.length) {
+            return;
+        }
         var current_layout = $dashboard.attr('data-layout');
         if (current_layout !== layout) {
             var clayout = current_layout.split('-').length,
diff --git a/addons/board/static/tests/mobile/board_tests.js b/addons/board/static/tests/mobile/board_tests.js
index 9b32e2e9dcb08bbc63152134b5affd311658f773..964471037d54365fab738b5b8baf48f013e60a51 100644
--- a/addons/board/static/tests/mobile/board_tests.js
+++ b/addons/board/static/tests/mobile/board_tests.js
@@ -113,4 +113,35 @@ odoo.define("board.dashboard_tests", function (require) {
 
         target.destroy();
     });
+
+    QUnit.test("empty board view", async function (assert) {
+        assert.expect(2);
+        const target = await createView({
+            View: BoardView,
+            debug: 1,
+            model: "board",
+            data: this.data,
+            arch: `<form string="My Dashboard">
+                <board style="2-1">
+                    <column/>
+                </board>
+            </form>`,
+            archs: {
+                "partner,4,list": '<tree string="Partner"><field name="foo"/></tree>',
+            },
+        });
+
+        assert.hasClass(
+            target.renderer.$el,
+            "o_dashboard",
+            "with a dashboard, the renderer should have the proper css class"
+        );
+        assert.containsOnce(
+            target,
+            ".o_dashboard .o_view_nocontent",
+            "should have a no content helper"
+        );
+
+        target.destroy();
+    });
 });