{"record":{"id":"e4537a0bde5f29db","repo":"apache/beam","slug":"vertex-ai-feature-store-legacy-s-does-not-exist","errorCode":null,"errorMessage":"Vertex AI Feature Store (Legacy) %s does not exist","messagePattern":"Vertex AI Feature Store \\(Legacy\\) (.+?) does not exist","errorType":"exception","errorClass":"NotFound","httpStatus":null,"severity":"error","filePath":"sdks/python/apache_beam/transforms/enrichment_handlers/vertex_ai_feature_store.py","lineNumber":265,"sourceCode":"      if not self.kwargs['client_options']['api_endpoint']:\n        self.kwargs['client_options']['api_endpoint'] = self.api_endpoint\n      elif self.kwargs['client_options']['api_endpoint'] != self.api_endpoint:\n        raise ValueError(\n            'Multiple values received for api_endpoint in '\n            'api_endpoint and client_options parameters.')\n    else:\n      self.kwargs['client_options'] = {\"api_endpoint\": self.api_endpoint}\n\n    # checks if feature store exists\n    try:\n      _ = aiplatform.Featurestore(\n          featurestore_name=self.feature_store_id,\n          project=self.project,\n          location=self.location,\n          credentials=self.kwargs.get('credentials'),\n      )\n    except NotFound:\n      raise NotFound(\n          'Vertex AI Feature Store (Legacy) %s does not exist' %\n          self.feature_store_id)\n\n  def __enter__(self):\n    \"\"\"Connect with the Vertex AI Feature Store (Legacy).\"\"\"\n    self.client = aiplatform.gapic.FeaturestoreOnlineServingServiceClient(\n        **self.kwargs)\n    self.entity_type_path = self.client.entity_type_path(\n        self.project, self.location, self.feature_store_id, self.entity_type_id)\n\n  def __call__(self, request: beam.Row, *args, **kwargs):\n    \"\"\"Fetches feature value for an entity-id from\n    Vertex AI Feature Store (Legacy).\n\n    Args:\n      request: the input `beam.Row` to enrich.\n    \"\"\"\n    try:","sourceCodeStart":247,"sourceCodeEnd":283,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/transforms/enrichment_handlers/vertex_ai_feature_store.py#L247-L283","documentation":"In __init__, the handler validates the feature store by listing featurestores via the admin client; if gRPC NotFound is raised, it is re-raised as NotFound with a message stating the (Legacy) Vertex AI Feature Store identified by feature_store_id does not exist.","triggerScenarios":"Constructing VertexAIFeatureStoreEnrichment with a feature_store_id that does not exist in the given project/location, or with wrong project/location/credentials so the store is not visible.","commonSituations":"Typo in feature_store_id, using a store in a different region than the location parameter, wrong project, or credentials lacking permission to see the store (surfacing as NotFound).","solutions":["Verify feature_store_id matches the actual Featurestore resource ID in your project.","Check project and location parameters match where the feature store was created.","Confirm credentials can access the project and the Featurestore exists (gcloud ai featurestores list)."],"exampleFix":"// before\nVertexAIFeatureStoreEnrichment('my-store-typo', 'my_view', 'user_id', project='p', location='us-central1')\n// after\nVertexAIFeatureStoreEnrichment('my_featurestore', 'my_view', 'user_id', project='p', location='us-central1')","handlingStrategy":"try-catch","validationCode":"from google.cloud import aiplatform\ndef store_exists(project, location, store_id):\n    client = aiplatform.gapic.FeaturestoreServiceClient()\n    name = client.featurestore_path(project, location, store_id)\n    try:\n        client.get_featurestore(name=name)\n        return True\n    except Exception:\n        return False","typeGuard":null,"tryCatchPattern":"try:\n    handler = VertexAIFeatureStoreEnrichment(fs_id, fv, key, project=p, location=loc)\nexcept google.api_core.exceptions.NotFound as e:\n    logging.error('Feature store missing: %s', e)","preventionTips":["Copy resource IDs from gcloud/Console rather than retyping them.","Verify project and location before constructing the handler.","Validate resource existence in a startup smoke test."],"tags":["vertex-ai","not-found","resource","beam","configuration"],"backgroundTag":"resource-not-found","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}