Stay organized with collections
Save and categorize content based on your preferences.
You're viewing Apigee and Apigee hybrid documentation.
There is no equivalent
Apigee Edge documentation for this topic.
Symptom
An ApigeeIssue with ReasonAIS_VIRTUALHOST_MISSING_SELECTOR
is shown when viewing resources in the apigee namespace.
Error messages
After running kubectl -n apigee get apigeeissues, an error like the following is
displayed:
NAME SEVERITY REASON DOCUMENTATION AGE
vhost-missing-selector-my-org-my-virtualhost ERROR AIS_VIRTUALHOST_MISSING_SELECTOR https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_VIRTUALHOST_MISSING_SELECTOR 5h18m
Cause: Virtualhost is missing ingress selector
A virtualhost declared in overrides.yaml does not have the ingress selector field
set.
Diagnosis
Run the following command:
kubectl -n apigee describe apigeeissue ISSUE_NAME
Where ISSUE_NAME is the name of the issue. For example,
vhost-missing-selector-my-org-my-virtualhost.
If the problem persists even after following the above instructions, gather
the following diagnostic information and then contact Google Cloud Customer Care:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis documentation specifically addresses an issue encountered by Apigee hybrid users, where an \u003ccode\u003eApigeeIssue\u003c/code\u003e with the reason \u003ccode\u003eAIS_VIRTUALHOST_MISSING_SELECTOR\u003c/code\u003e is displayed.\u003c/p\u003e\n"],["\u003cp\u003eThe error indicates that a virtual host defined in the \u003ccode\u003eoverrides.yaml\u003c/code\u003e file is missing the necessary ingress selector field, which is crucial for proper routing.\u003c/p\u003e\n"],["\u003cp\u003eThe resolution involves using \u003ccode\u003ekubectl describe\u003c/code\u003e to identify the problematic virtual host's name, then adding the missing \u003ccode\u003eselector\u003c/code\u003e field (e.g., \u003ccode\u003eapp: apigee-ingressgateway\u003c/code\u003e) to its definition in the \u003ccode\u003eoverrides.yaml\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eAfter updating \u003ccode\u003eoverrides.yaml\u003c/code\u003e, the changes need to be applied to the virtual host using a \u003ccode\u003ehelm upgrade\u003c/code\u003e command, directed towards the relevant environment group and namespace.\u003c/p\u003e\n"],["\u003cp\u003eIf the issue persists after making the aforementioned changes, it is recommended to gather specific diagnostic information (Project ID, Organization Name, Spec.Details) before contacting Google Cloud Customer Care.\u003c/p\u003e\n"]]],[],null,["# Virtual host missing selector\n\n*You're viewing **Apigee** and **Apigee hybrid** documentation.\nThere is no equivalent\n[Apigee Edge](https://docs.apigee.com/api-platform/get-started/get-started) documentation for this topic.*\n| **Note:** This document is applicable for Apigee hybrid users only.\n\n\u003cbr /\u003e\n\nSymptom\n-------\n\n\nAn `ApigeeIssue` with `Reason` `AIS_VIRTUALHOST_MISSING_SELECTOR`\nis shown when viewing resources in the `apigee` namespace.\n\nError messages\n--------------\n\n\nAfter running `kubectl -n apigee get apigeeissues`, an error like the following is\ndisplayed: \n\n```scdoc\nNAME SEVERITY REASON DOCUMENTATION AGE\nvhost-missing-selector-my-org-my-virtualhost ERROR AIS_VIRTUALHOST_MISSING_SELECTOR https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_VIRTUALHOST_MISSING_SELECTOR 5h18m\n```\n\nCause: Virtualhost is missing ingress selector\n----------------------------------------------\n\n\nA virtualhost declared in `overrides.yaml` does not have the ingress selector field\nset.\n\n### Diagnosis\n\n\nRun the following command: \n\n```\nkubectl -n apigee describe apigeeissue ISSUE_NAME\n```\n\n\nWhere \u003cvar translate=\"no\"\u003eISSUE_NAME\u003c/var\u003e is the name of the issue. For example,\n`vhost-missing-selector-my-org-my-virtualhost`.\n\n\nThe output should look similar to the following: \n\n```vb.net\nName: vhost-missing-selector-my-org-my-virtualhost\nNamespace: apigee\nLabels: ais-reason=AIS_VIRTUALHOST_MISSING_SELECTOR\nAnnotations: \u003cnone\u003e\nAPI Version: apigee.cloud.google.com/v1alpha1\nKind: ApigeeIssue\nMetadata:\n Creation Timestamp: 2023-06-12T17:03:43Z\n Generation: 1\n Owner References:\n API Version: apigee.cloud.google.com/v1alpha2\n Kind: ApigeeOrganization\n Name: my-org\n UID: 7e83a52c-ce00-4bed-98be-55835ada1817\n Resource Version: 3281563\n UID: adc775c2-376d-4bf9-9860-500b2b2b8273\nSpec:\n Details: Expected ingress selector in ApigeeRouteConfig \"my-org-my-virtualhost\". Environment Group/virtual host \"my-virtualhost\" is missing an ingress selector.\n Documentation: https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_VIRTUALHOST_MISSING_SELECTOR\n Reason: AIS_VIRTUALHOST_MISSING_SELECTOR\n Severity: WARNING\nEvents: \u003cnone\u003e\n``` \n\n```actionscript-3\nSpec:\n Details: Expected ingress selector in ApigeeRouteConfig \"my-org-my-virtualhost\". Environment Group/virtual host \"my-virtualhost\" is missing an ingress selector.\n```\n\n\nThe contents of `Spec.Details` explains the name of the\nvirtualhost which is missing the ingress selector.\n\n### Resolution\n\n1.\n Use `kubectl describe` to check the details of the issue:\n\n ```\n kubectl -n apigee describe apigeeissue ISSUE_NAME\n ```\n\n\n Where \u003cvar translate=\"no\"\u003eISSUE_NAME\u003c/var\u003e is the name of the issue. For example,\n `vhost-missing-selector-my-org-my-virtualhost`.\n2.\n Determine the `virtualhost` name from the `Spec.Details` field.\n\n\n In this example, the virtualhost is called `my-virtualhost`.\n3. Find the corresponding virtualhost in your `overrides.yaml`.\n\n ```\n virtualhosts:\n ...\n - name: my-virtualhost\n sslCertPath: ./certs/vhost.pem\n sslKeyPath: ./certs/vhost.key\n ...\n ```\n4.\n Update the virtualhost and add the ingress selector:\n\n ```\n virtualhosts:\n ...\n - name: my-virtualhost\n selector:\n app: apigee-ingressgateway\n sslCertPath: ./certs/vhost.pem\n sslKeyPath: ./certs/vhost.key\n ...\n ```\n5. Apply the change to the virtualhost:\n\n ```\n helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \\\n --namespace apigee \\\n --set envgroup=ENV_GROUP_NAME \\\n -f overrides.yaml\n ```\n\nMust gather diagnostic information\n----------------------------------\n\n\nIf the problem persists even after following the above instructions, gather\nthe following diagnostic information and then contact [Google Cloud Customer Care](https://cloud.google.com/support-hub/):\n\n1. The Google Cloud Project ID.\n2. The name of the Apigee hybrid organization.\n3. The `Spec.Details` field of the `ApigeeIssue`."]]