Common HTTP statuses
Validation errors
FastAPI validation errors use the standarddetail array:
Recoverable dataset states
/v1/tools/export_dataset can return 200 with data.available=false when a valid openrush:// dataset URI has expired. Treat that as a recoverable state. Follow the next_actions entry to regenerate the dataset.
Owned data connection states
get_search_performance, get_website_analytics, and get_ad_performance can return a recoverable envelope instead of data when the connection they need is not ready. These are not failures to retry blindly; each carries a next_action telling you how to recover. No credits are charged in these states.
Google Ads can also reject a report it cannot build, for example an unsupported filter and report combination. That comes back as a
core.error with code upstream_rejected and retryable: false, with a next_action that retries the same report without filters. Unlike the connection states above, the call has already been charged.