Recover by the kind of problem
The HTTP error body can use
detail, while a measurement error uses error.code, error.message, and error.details. MCP can wrap an HTTP failure as http_error with details.status_code. Preserve the code in your logs and provide a useful message to the user.
What an error response looks like
These are selected fields from observed Dev MCP responses. Project and run IDs have been replaced with placeholders. The surrounding response can contain additional fields.Invalid metric
A citation request with an unsupportedmetric returns a validation error:
metric to share or coverage. Retrying the same invalid value will not help.
Invalid run ID
PassingNOT_A_RUN_ID to get_run returns:
run_id returned by list_runs. Both errors above arrived with the outer MCP isError flag unset or false. Your client must inspect the decoded payload’s error field as well.
Required analysis input missing
An emptydomain passed to get_factor_analysis returned an application-level error:
config_invalid; it is distinct from the HTTP validation errors above. The outer MCP isError flag was false in this observed case too.
No linked Google property
An unavailable integration can return a normal response rather than an error. For example,list_ga4_properties returned:
Do not retry every empty result
An unready run may become ready. A transient capacity error may clear. An invalid filter, inaccessible project, unindexed name, or unavailable historical data needs a different action. Useempty_reason and any not_available or unavailable_reason fields rather than treating every empty response alike.
Retry politely
For retryable read failures, use a small maximum attempt count, increasing delays, and a maximum total wait. Honor a validRetry-After header. Avoid repeatedly starting all requests in a large report at once. After the limit is reached, show what could not be retrieved and let the user retry.
This edition does not publish a verified account-wide requests-per-minute allowance. Do not infer a commercial limit from a server configuration default. Ask your IQRush contact for the operating limits assigned to a high-volume integration.