apache/beam · error · ValueError
The feature store yaml path (%s) does not exist.
Error message
The feature store yaml path (%s) does not exist.
What it means
Raised by `_validate_feature_store_yaml_path_exists` at handler construction when `FileSystems.exists(feature_store_yaml_path)` returns False. The configured yaml (usually a gs:// path) cannot be found, so the Feast handler aborts early rather than failing later during download.
Source
Thrown at sdks/python/apache_beam/transforms/enrichment_handlers/feast_feature_store.py:70
raise RuntimeError(
'error downloading the file %s locally to load the '
'Feast feature store.' % gcs_fs_yaml_file)
def _validate_feature_names(feature_names, feature_service_name):
"""Check if one of `feature_names` or `feature_service_name` is provided."""
if ((not feature_names and not feature_service_name) or
bool(feature_names and feature_service_name)):
raise ValueError(
'Please provide exactly one of a list of feature names to fetch '
'from online store (`feature_names`) or a feature service name for '
'the Feast online feature store (`feature_service_name`).')
def _validate_feature_store_yaml_path_exists(fs_yaml_file):
"""Check if the feature store yaml path exists."""
if not FileSystems.exists(fs_yaml_file):
raise ValueError(
'The feature store yaml path (%s) does not exist.' % fs_yaml_file)
def _validate_entity_key_exists(entity_id, entity_row_fn):
"""Checks if the entity key or a lambda to build entity key exists."""
if ((not entity_row_fn and not entity_id) or
bool(entity_row_fn and entity_id)):
raise ValueError(
"Please specify exactly one of a `entity_id` or a lambda "
"function with `entity_row_fn` to extract the entity id "
"from the input row.")
class FeastFeatureStoreEnrichmentHandler(EnrichmentSourceHandler[beam.Row,
beam.Row]):
"""Enrichment handler to interact with the Feast feature store.
To specify the features to fetch from Feast online store,View on GitHub (pinned to 12126d8942)
Solutions
- Run `FileSystems.exists('gs://bucket/path.yaml')` in the same environment to confirm reachability.
- Fix the path/bucket/project in the configuration.
- Ensure the file is uploaded before launching the pipeline (e.g. via gsutil/deployment step).
- Check for typos and environment-specific config injection (staging vs prod buckets).
Example fix
// before feature_store_yaml_path='gs://my-bucket/featstore/feature_store.yamll' // after feature_store_yaml_path='gs://my-bucket/featstore/feature_store.yaml'
Defensive patterns
Strategy: validation
Validate before calling
from apache_beam.io.filesystems import FileSystems
if not FileSystems.exists(feature_store_yaml_path):
raise FileNotFoundError(f'{feature_store_yaml_path} does not exist') Prevention
- Add an existence check to deployment scripts before launching the pipeline.
- Keep yaml paths in environment-specific config with tests.
- Avoid hand-typed gs:// paths; generate them from constants.
When it happens
Trigger: Constructing `FeastFeatureStoreEnrichmentHandler` with a `feature_store_yaml_path` that points to a nonexistent GCS object, has a typo, or uses a wrong bucket/project.
Common situations: Deleted or renamed yaml file; wrong environment config pointing at another bucket; local paths tested locally but replaced incorrectly with gs:// paths for Dataflow.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- src and dst files do not exist. src: %s, dst: %s
- Artifacts not found at location: %s when using read_artifact
- Vocabulary file {} not found in artifact location
- The file %s cannot be found. It was specified in the --extra
- Please provide exactly one of a list of feature names to fet
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/b969ecc93ca894b6.
Report an issue: GitHub.