Expected Behavior
A feast application has a registry of type remote connected to a registry server.
The feast client invokes a an API on the feast registry that thrown an error, e.g. store.get_feature_service("foo") which raises
FeatureServiceNotFoundException from the registry server because foo is not a registered feature service.
The expectation is that the method invoked by the client raises the FeatureServiceNotFoundException and the application can detect it with:
try:
fs = store.get_feature_service("foo")
except FeatureServiceNotFoundException
....
Current Behavior
The registy server always raises an _InactiveRpcError error instead.
This bug causes unexpected errors when the client invokes services whose implementation needs such expections to execute fall-back logic, like _get_feature_views_to_materialize.
Steps to reproduce
See Expected Behavior section.
Specifications
- Version: 0.40.0
- Platform: any
- Subsystem: registry server
Possible Solution
The registry server can wrap the original exception in an error status message that the remote registry client can catch and translate into the original exception:
Expected Behavior
A feast application has a registry of type remote connected to a registry server.
The feast client invokes a an API on the feast registry that thrown an error, e.g.
store.get_feature_service("foo")which raisesFeatureServiceNotFoundExceptionfrom the registry server becausefoois not a registered feature service.The expectation is that the method invoked by the client raises the
FeatureServiceNotFoundExceptionand the application can detect it with:Current Behavior
The registy server always raises an
_InactiveRpcErrorerror instead.This bug causes unexpected errors when the client invokes services whose implementation needs such expections to execute fall-back logic, like _get_feature_views_to_materialize.
Steps to reproduce
See
Expected Behaviorsection.Specifications
Possible Solution
The registry server can wrap the original exception in an error status message that the remote registry client can catch and translate into the original exception: