Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: Handle UUID types in _proto_value_to_transport_value for JSON se…
…rialization

Return UUID proto fields as plain strings instead of falling through to
feast_value_type_to_python_type which converts them to uuid.UUID objects
that are not JSON-serializable, causing TypeError during HTTP transport.

Signed-off-by: soojin <soojin@dable.io>
  • Loading branch information
soooojinlee authored and ntkathole committed Apr 1, 2026
commit b9b15d206b72408289576223c3a6edbd67760452
10 changes: 10 additions & 0 deletions sdk/python/feast/infra/online_stores/remote.py
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,16 @@ def _proto_value_to_transport_value(proto_value: ValueProto) -> Any:
if val_attr in ("map_list_val", "struct_list_val"):
return [json.dumps(v) for v in feast_value_type_to_python_type(proto_value)]

# UUID types are stored as strings in proto — return them directly
# to avoid feast_value_type_to_python_type converting to uuid.UUID
# objects which are not JSON-serializable.
if val_attr in ("uuid_val", "time_uuid_val"):
return getattr(proto_value, val_attr)
if val_attr in ("uuid_list_val", "time_uuid_list_val"):
return list(getattr(proto_value, val_attr).val)
if val_attr in ("uuid_set_val", "time_uuid_set_val"):
return list(getattr(proto_value, val_attr).val)

return feast_value_type_to_python_type(proto_value)

def online_write_batch(
Expand Down