diff --git a/packages/ra-core/src/form/useChoices.ts b/packages/ra-core/src/form/useChoices.ts
index 127281965b8..4ae81da172b 100644
--- a/packages/ra-core/src/form/useChoices.ts
+++ b/packages/ra-core/src/form/useChoices.ts
@@ -65,7 +65,9 @@ const useChoices = ({
? optionText(choice)
: get(choice, optionText);
- return translateChoice
+ return isValidElement(choiceName)
+ ? choiceName
+ : translateChoice
? translate(choiceName, { _: choiceName })
: String(choiceName);
},
diff --git a/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx b/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx
index 5dbe54b9619..48b01d7b088 100644
--- a/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx
+++ b/packages/ra-ui-materialui/src/input/AutocompleteInput.spec.tsx
@@ -1,5 +1,5 @@
import * as React from 'react';
-import { render, fireEvent, waitFor } from '@testing-library/react';
+import { render, fireEvent, waitFor, act } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { AutocompleteInput } from './AutocompleteInput';
@@ -534,6 +534,38 @@ describe('