Troubleshooting of Google Vertex AI Search
Resolving Issues with Google Vertex AI Search and its API
Issues[edit]
Troubleshooting: Vertex AI Search: Data Repository Requires Enterprise Features[edit]
Error: When creating an application, encountered the error message "This application cannot currently use 4 data stores are..." Expanding the data repository list shows "Website data repository can only be linked to Enterprise version of Vertex AI Search applications"
Solution: When creating the application, enable "Enterprise Edition Features"
Troubleshooting: SearchLite API Blocked" Error in Discovery Engine[edit]
Issue Description: When attempting to retrieve search results using Google Vertex AI API[1], the following error occurs:
curl -X POST -H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:searchLite?key=API_KEY" \
-d '{
"servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
"query": "QUERY",
}'
Met the error
{
"code" : 403,
"message" : "Requests to this API discoveryengine.googleapis.com method google.cloud.discoveryengine.v1.SearchService.SearchLite are blocked.",
"status" : "PERMISSION_DENIED",
"details" : [
{
"@type" : "type.googleapis.com/google.rpc.ErrorInfo",
"reason" : "API_KEY_SERVICE_BLOCKED",
"domain" : "googleapis.com",
"metadata" : {
"service" : "discoveryengine.googleapis.com",
"methodName" : "google.cloud.discoveryengine.v1.SearchService.SearchLite",
"apiName" : "discoveryengine.googleapis.com",
"consumer" : "projects/xxx"
}
},
{
"@type" : "type.googleapis.com/google.rpc.LocalizedMessage",
"locale" : "en-US",
"message" : "Requests to this API discoveryengine.googleapis.com method google.cloud.discoveryengine.v1.SearchService.SearchLite are blocked."
}
]
}
Resolution Steps: Check API Key Restrictions
- Verify if the key is restricted to specific APIs:
- Navigate to the API Key Management page in Google Cloud Console.
- Locate the API key being used and check if it is restricted to specific APIs. If the restriction includes discoveryengine.googleapis.com, ensure it is correctly configured.
- Remove unnecessary restrictions: If the key is restricted to unrelated IP addresses or applications, remove those restrictions.
- Enable the Discovery Engine API
- Go to the API & Services page in Google Cloud Console.
- Search for Discovery Engine API and ensure it is enabled.
Troubleshooting: "Requested Entity Already Exists" Error When Saving Data Stores[edit]
Error: When saving site indexing, the following error message appears[2]:
Failed to save sites Requested entity already exists Tracking number: <mix of English and numeric characters>
Root Cause: Conflicting URL patterns exist simultaneously in "Specify URL patterns to index":
example.com
and
*.example.com/*
These two patterns conflict with each other, causing the system to treat them as duplicate entities. The detailed linking rules are mentioned in the official documentation:
You can use the operations listed below Entire site: www.mysite.com/* Parts of site: www.mysite.com/faq/* Entire domain: *.mysite.com/* Quotes for exact match: "www.mysite.com/faq" Sites without quotes will match any path after the specified address: www.mysite.com/faq → www.mysite.com/faq*.
Solution:
Simply remove one of the patterns to resolve the issue. It's recommended to keep the broader pattern *.example.com/* as it already includes example.com.
Troubleshooting: "Quota exceeded for Search lite requests" Error in Discovery Engine[edit]
Issue Description: When using Discovery Engine API to retrieve search results, the following error occurs:
{
"error" : {
"code" : 429,
"message" : "Quota exceeded for quota metric 'Search lite requests' and limit 'Search lite requests per minute' of service 'discoveryengine.googleapis.com' for consumer 'project_number:XXX'.",
"status" : "RESOURCE_EXHAUSTED",
...
}
}
Root cause:
The metadata in the error response has indicated that the quota value is 100 requests per minute
Resolution Steps: Resolve API Quota Limit Exceedance
Option 1: Increase the delay time between requests
- Implement this timing delay in your code to prevent 429 errors. 60 seconds ÷ 100 requests = 0.6 seconds per request e.g. Add a 0.6 ~ 1 second pause between each request to stay within rate limits
- Adjust the delay time as needed based on your quota and request patterns
Option 2: Increase quota limit
- Go to the Quotas page in Google Cloud Console and find "Search lite requests per minute"
- Select the relevant quota, click "EDIT QUOTAS", and submit a request for a higher limit
- Wait for Google Cloud Support to review and approve
Option 3: Implement exponential backoff retry mechanism
- Detect HTTP 429 errors in your application and set an initial delay (e.g., 1 second)
- Increase the delay time with each failed retry (e.g., 2 seconds, 4 seconds, 8 seconds, etc.)
- Continue retrying until the request succeeds or maximum retry count is reached
Troubleshooting: Vertex AI Search: Engine Not Found Error[edit]
Error: When using Vertex AI Search API, encountering a 404 error:
{
"error": {
"code": 404,
"message": "Engine projects/<YOUR_PROJECT_ID>/locations/global/collections/default_collection/engines/<YOUR_APP_ID> not found.",
"status": "NOT_FOUND"
}
}
Solution:
1. Verify the correct APP ID (Engine ID): Open your browser and replace <YOUR_APP_ID> in the URL with the actual APP ID:
https://console.cloud.google.com/gen-app-builder/locations/global/engines/<YOUR_APP_ID>/overview
2. Update the app_id in your code:
3. Validate the API endpoint: Ensure the curl request uses the correct engine ID:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1alpha/projects/<YOUR_PROJECT_ID>/locations/global/collections/default_collection/engines/<YOUR_APP_ID>/servingConfigs/default_search:search" \
-d '{"query":"<QUERY>","pageSize":10,"queryExpansionSpec":{"condition":"AUTO"},"spellCorrectionSpec":{"mode":"AUTO"},"languageCode":"zh-TW","userInfo":{"timeZone":"Asia/Taipei"}}'
Troubleshooting: Vertex AI Search: Path Format Error When Enabling Grounding[edit]
Error encountered when enabling "Grounding with Vertex AI Search":
Error message:
Path must follow this format: projects/{project_id}/locations/{location}/collections/{collection_name}/dataStores/{datastore_name}
Solution: How to find the correct path parameters:
- Navigate to https://console.cloud.google.com/gen-app-builder/engines
- Select your datastore
- Click the "Integration" tab
- Look for the example command under "Run sample request in Cloud Shell"
Example curl command:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1alpha/projects/987654321000/locations/global/collections/default_collection/engines/vertex-search_123/servingConfigs/default_search:search" \
-d '{"query":"<QUERY>","pageSize":10,"queryExpansionSpec":{"condition":"AUTO"},"spellCorrectionSpec":{"mode":"AUTO"},"languageCode":"zh-TW","userInfo":{"timeZone":"Asia/Taipei"}}'
Parameter extraction from the URL: From the URL path
/projects/987654321000/locations/global/collections/default_collection/engines/vertex-search_123/
- {project_id}: `987654321000` (the number after `/projects/`)
- {location}: `global` (the string after `/locations/`)
Note: Do not enter the geographic areas of GCP server. You will met the error message e.g. "Invalid location in serving config: asia-east1" - {collection_name}: `default_collection` (the string after `/collections/`)
- {datastore_name}: Found on the datastore overview page as "Datastore ID" (e.g., `XXX_1234567890123`)
Note: The datastore_name is not visible in the engine URL - you need to check the datastore overview page to find the "Datastore ID".
Related Pages[edit]
- Customized Search Engine written in Mandarin
- Troubleshooting of curl errors if you are using curl command.
- Troubleshooting of HTTP errors
Further readings[edit]
- Building an Enterprise Search app using Vertex AI Search on Google Cloud (Demo) - YouTube
- Grounding with Vertex AI Search | Generative AI on Vertex AI | Google Cloud