diff --git a/addons/web/static/src/search/search_arch_parser.js b/addons/web/static/src/search/search_arch_parser.js
index 4556c9283ffb1f3653509f01aae76e03de5ee702..60d59d3745a5e07b264f878f2721ab42f98cc40c 100644
--- a/addons/web/static/src/search/search_arch_parser.js
+++ b/addons/web/static/src/search/search_arch_parser.js
@@ -162,7 +162,7 @@ export class SearchArchParser extends XMLParser {
                     preField.defaultAutocompleteValue.label = option[1];
                 } else if (fieldType === "many2one") {
                     this.labels.push((orm) => {
-                        orm.call(relation, "name_get", [value], { context }).then((results) => {
+                        return orm.call(relation, "name_get", [value], { context }).then((results) => {
                             preField.defaultAutocompleteValue.label = results[0][1];
                         });
                     });
diff --git a/addons/web/static/tests/search/search_bar_tests.js b/addons/web/static/tests/search/search_bar_tests.js
index a70eb178bc88d8cf0b01a37cbc64604eb898bd15..3b94ca9901f126d72b7a738eba1515f7c4b76110 100644
--- a/addons/web/static/tests/search/search_bar_tests.js
+++ b/addons/web/static/tests/search/search_bar_tests.js
@@ -2,7 +2,14 @@
 
 import { registerCleanup } from "@web/../tests/helpers/cleanup";
 import { ControlPanel } from "@web/search/control_panel/control_panel";
-import { click, makeDeferred, nextTick, patchWithCleanup, triggerEvent } from "../helpers/utils";
+import {
+    click,
+    getFixture,
+    makeDeferred,
+    nextTick,
+    patchWithCleanup,
+    triggerEvent,
+} from "../helpers/utils";
 import {
     editSearch,
     getFacetTexts,
@@ -929,4 +936,35 @@ QUnit.module("Search", (hooks) => {
         await triggerEvent(document.activeElement, null, "keydown", { key: "Enter" });
         assert.deepEqual(getDomain(controlPanel), [["company", "=", 5]]);
     });
+
+    QUnit.test("should wait label promises for one2many search defaults", async function (assert) {
+        assert.expect(3);
+
+        const target = getFixture();
+
+        const def = makeDeferred();
+        const mockRPC = async (_, args) => {
+            if (args.method === "name_get") {
+                await def;
+            }
+        };
+
+        makeWithSearch({
+            serverData,
+            mockRPC,
+            resModel: "partner",
+            Component: ControlPanel,
+            searchMenuTypes: [],
+            searchViewId: false,
+            context: { search_default_company: 1 },
+        });
+
+        await nextTick();
+        assert.containsNone(target, ".o_control_panel");
+
+        def.resolve();
+        await nextTick();
+        assert.containsOnce(target, ".o_control_panel");
+        assert.strictEqual(getFacetTexts(target)[0].replace("\n", ""), "CompanyFirst record");
+    });
 });