diff --git a/reflex/state.py b/reflex/state.py index f0f3e1453..8ab6a90a2 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -2592,16 +2592,24 @@ def _serialize_type(type_: Any) -> str: return f"{type_.__module__}.{type_.__qualname__}" +def is_serializable(value: Any) -> bool: + """Check if a value is serializable. + + Args: + value: The value to check. + + Returns: + Whether the value is serializable. + """ + try: + return bool(dill.dumps(value)) + except Exception: + return False + + def state_to_schema( state: BaseState, -) -> List[ - Tuple[ - str, - str, - Any, - Union[bool, None], - ] -]: +) -> List[Tuple[str, str, Any, Union[bool, None], Any]]: """Convert a state to a schema. Args: @@ -2621,6 +2629,7 @@ def state_to_schema( if isinstance(model_field.required, bool) else None ), + (model_field.default if is_serializable(model_field.default) else None), ) for field_name, model_field in state.__fields__.items() )