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

  1. Run `FileSystems.exists('gs://bucket/path.yaml')` in the same environment to confirm reachability.
  2. Fix the path/bucket/project in the configuration.
  3. Ensure the file is uploaded before launching the pipeline (e.g. via gsutil/deployment step).
  4. 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

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


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/b969ecc93ca894b6. Report an issue: GitHub.