diff --git a/packages/react-aria-components/docs/ComboBox.mdx b/packages/react-aria-components/docs/ComboBox.mdx
index 30b302628f1..5ebe5f63311 100644
--- a/packages/react-aria-components/docs/ComboBox.mdx
+++ b/packages/react-aria-components/docs/ComboBox.mdx
@@ -512,6 +512,48 @@ any value within the field.
```
+### Custom values with multiple selection
+
+When `allowsCustomValue` is combined with `selectionMode="multiple"`, users can both select predefined items and type custom values. Pressing Enter or Tab with a non-matching input adds the typed text as a custom value to the selection. The input clears after each selection so the user can continue searching. Pressing Escape discards the typed text without affecting the current selection.
+
+Custom values appear in `selectedItems` as nodes with `value: null` and `textValue` set to the custom string. You can distinguish them from collection items by checking `item.value`.
+
+```tsx example
+import {ComboBoxStateContext, TagGroup, TagList, Tag} from 'react-aria-components';
+
+
+
+
}>
+ Red Panda
+ Cat
+ Dog
+ Kangaroo
+ Snake
+
+
+
+```
+
### HTML forms
ComboBox supports the `name` prop for integration with HTML forms. By default, the `id` of the selected item will be submitted to the server. If the `formValue` prop is set to `"text"` or the `allowsCustomValue` prop is true, the text in the input field will be submitted instead.
diff --git a/packages/react-aria-components/src/ComboBox.tsx b/packages/react-aria-components/src/ComboBox.tsx
index d6ef3c99a87..d59b9fb3f4e 100644
--- a/packages/react-aria-components/src/ComboBox.tsx
+++ b/packages/react-aria-components/src/ComboBox.tsx
@@ -140,7 +140,7 @@ function ComboBoxInner({props, collection, comboBoxRef: ref}:
formValue = 'key',
allowsCustomValue
} = props;
- if (allowsCustomValue) {
+ if (allowsCustomValue && props.selectionMode !== 'multiple') {
formValue = 'text';
}
diff --git a/packages/react-aria-components/stories/ComboBox.stories.tsx b/packages/react-aria-components/stories/ComboBox.stories.tsx
index 95e5c268950..0a5f7847d52 100644
--- a/packages/react-aria-components/stories/ComboBox.stories.tsx
+++ b/packages/react-aria-components/stories/ComboBox.stories.tsx
@@ -20,6 +20,7 @@ import {ListBox} from '../src/ListBox';
import {ListBoxLoadMoreItem} from '../src/ListBox';
import {ListLayout} from 'react-stately/useVirtualizerState';
import {LoadingSpinner, MyListBoxItem} from './utils';
+import {Key} from '@react-types/shared';
import {Meta, StoryFn, StoryObj} from '@storybook/react';
import {Popover} from '../src/Popover';
import React, {JSX, useMemo, useState} from 'react';
@@ -437,6 +438,159 @@ export const MultiSelectComboBox: ComboBoxStory = () => (
);
+export const MultiSelectComboBoxAllowsCustomValue: ComboBoxStory = () => (
+
+
+