◐ Shell
clean mode source ↗

fix: Remote Online Store Type Inference Error with All-NULL Columns by yuan1j · Pull Request #6063 · feast-dev/feast

When reading features from a Feast Remote Online Store, a TypeError is raised if an entire feature column contains only NULL/NaN values. The error occurs in the python_values_to_proto_values() function when it cannot infer the value type from empty data.

                   event_timestamp          driver_id  conv_rate  acc_rate  avg_daily_trips
0  2026-03-04 16:17:44+00:00       1001        NaN    1.000000           1000.0
1  2026-02-17 16:00:00+00:00       1005        NaN    0.708060            395.0
2  2026-02-17 17:00:00+00:00       1005        NaN    0.451616            145.0
 Traceback (most recent call last):
  File "C:\svn\project\feature_store\feast\remote\test_workflow.py", line 130, in <module>
    run_demo()
  File "C:\svn\project\feature_store\feast\remote\test_workflow.py", line 25, in run_demo
    fetch_online_features(store)
  File "C:\svn\project\feature_store\feast\remote\test_workflow.py", line 121, in fetch_online_features
    returned_features = store.get_online_features(
  File "C:\Users\j\AppData\Local\Programs\Python\Python310\lib\site-packages\feast\feature_store.py", line 2445, in get_online_features
    response = provider.get_online_features(
  File "C:\Users\j\AppData\Local\Programs\Python\Python310\lib\site-packages\feast\infra\passthrough_provider.py", line 251, in get_online_features
    return self.online_store.get_online_features(
  File "C:\Users\j\AppData\Local\Programs\Python\Python310\lib\site-packages\feast\infra\online_stores\online_store.py", line 199, in get_online_features
    read_rows = self.online_read(
  File "C:\Users\j\AppData\Local\Programs\Python\Python310\lib\site-packages\feast\infra\online_stores\remote.py", line 169, in online_read
    message = python_values_to_proto_values(
  File "C:\Users\j\AppData\Local\Programs\Python\Python310\lib\site-packages\feast\type_map.py", line 838, in python_values_to_proto_values
    raise TypeError("Couldn't infer value type from empty value")
TypeError: Couldn't infer value type from empty value