Using anything non-serializable for action types is discouraged: https://redux.js.org/faq/actions#actions In fact, this is the Flow definition for dispatching actions: declare export type DispatchAPI<A> = (action: A) => A; declare export type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>; Note how the `type` field is defined as a subtype of string, which Symbol isn’t.