Errors
Every Observability error carries a stable numeric error_code and a
machine-readable reason. This page lists the logical error codes Observability
can return, across its domain groups (10_3xx) and infrastructure groups
(10_6xx). For the full error envelope (the google.rpc.Status shape, the
reason and metadata fields, and how codes are structured) see
Errors.
Observability codes begin with 10, the two-digit service number (read
10307004 as 10_307_004: service, group, specific). The wire value is always
the flat integer; you can match on either error_code or reason, both are
stable.
Unlike some services, Observability’s reason values come from per-resource
enums, so a few short reasons (NOT_FOUND, ALREADY_EXISTS, WORKSPACE_NOT_VALID,
LOCATION_NOT_VALID, WINDOW_NOT_VALID, NOT_MARKED_FOR_DELETION) recur across
different resources. The numeric error_code is the unambiguous key, so match on
it when a reason alone is not specific enough.
The Status column is the canonical gRPC status the error maps to, which the
gateway renders as the matching HTTP status (see the
status codes table).
| Code | Reason | Status | Description |
|---|---|---|---|
10300001 | INVALID_TIME_RANGE | INVALID_ARGUMENT | The time range is not valid. |
10301001 | QUOTA_DEFINITION_METRIC_IS_BLANK | INVALID_ARGUMENT | Quota definition metric must not be blank. |
10301002 | QUOTA_DEFINITION_METRIC_FORMAT_IS_NOT_VALID | INVALID_ARGUMENT | Quota definition metric format is not valid. |
10301003 | QUOTA_DEFINITION_DISPLAY_NAME_IS_BLANK | INVALID_ARGUMENT | Quota definition display name must not be blank. |
10301004 | QUOTA_DEFINITION_DEFAULT_LIMIT_IS_NOT_VALID | INVALID_ARGUMENT | Quota definition default limit must be positive. |
10301005 | QUOTA_DEFINITION_REFRESH_INTERVAL_IS_NOT_VALID | INVALID_ARGUMENT | Quota definition refresh interval is not valid for the quota type. |
10302001 | QUOTA_LIMIT_EFFECTIVE_LIMIT_IS_NOT_VALID | INVALID_ARGUMENT | Quota limit effective limit must be positive. |
10302002 | QUOTA_LIMIT_CONTAINER_ID_IS_NOT_VALID | INVALID_ARGUMENT | Quota limit container ID is not valid. |
10303001 | OBSERVABILITY_QUOTA_EXCEEDED | RESOURCE_EXHAUSTED | Observability quota exceeded. |
10304001 | ACTIVITY_RESOURCE_TYPE_NOT_VALID | INVALID_ARGUMENT | Activity record resource type is not a valid URN. |
10304002 | ACTIVITY_SOURCE_OPERATION_NOT_VALID | INVALID_ARGUMENT | Activity record source operation ID is not valid. |
10304003 | ACTIVITY_ACTION_NOT_PRESENT | INVALID_ARGUMENT | Activity record action is required. |
10304004 | ACTIVITY_RECORD_NOT_FOUND | NOT_FOUND | Activity record not found. |
10305001 | ORGANISATION_REQUIRED_FOR_WILDCARD | INVALID_ARGUMENT | An organisation is required for an organisation-wide query. |
10305002 | WILDCARD_NOT_ALLOWED_ON_TAIL | INVALID_ARGUMENT | An organisation-wide query cannot be live-tailed. |
10306001 | PROGRESS_OUT_OF_RANGE | INVALID_ARGUMENT | Operation progress must be between 0 and 100. |
10306002 | END_TIME_BEFORE_START_TIME | INVALID_ARGUMENT | Operation end time cannot precede its start time. |
10306003 | NOT_FOUND | NOT_FOUND | Operation not found. |
10307001 | WORKSPACE_NOT_VALID | INVALID_ARGUMENT | The retention policy workspace is required. |
10307002 | LOCATION_NOT_VALID | INVALID_ARGUMENT | The retention policy location is required. |
10307003 | WINDOW_NOT_VALID | INVALID_ARGUMENT | Every retention window must be a positive duration. |
10307004 | NOT_FOUND | NOT_FOUND | Retention policy not found. |
10307005 | ALREADY_EXISTS | ALREADY_EXISTS | A retention policy already exists for this workspace. |
10308001 | WORKSPACE_NOT_VALID | INVALID_ARGUMENT | The log sink workspace is required. |
10308002 | LOCATION_NOT_VALID | INVALID_ARGUMENT | The log sink location is required. |
10308003 | NAME_NOT_VALID | INVALID_ARGUMENT | The log sink name must be a valid DNS label. |
10308004 | FILTER_NOT_VALID | INVALID_ARGUMENT | The log sink inclusion filter is required. |
10308005 | NOT_FOUND | NOT_FOUND | Log sink not found. |
10308006 | ALREADY_EXISTS | ALREADY_EXISTS | A log sink with this name already exists for this workspace. |
10308007 | NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | The log sink is not marked for deletion. |
10309001 | WORKSPACE_NOT_VALID | INVALID_ARGUMENT | The ingestion config workspace is required. |
10309002 | LOCATION_NOT_VALID | INVALID_ARGUMENT | The ingestion config location is required. |
10309003 | SAMPLING_RATIO_NOT_VALID | INVALID_ARGUMENT | The sampling ratio must be greater than 0 and at most 1. |
10309004 | SOURCES_NOT_VALID | INVALID_ARGUMENT | At least one telemetry source must be enabled. |
10309005 | NOT_FOUND | NOT_FOUND | Ingestion config not found. |
10309006 | ALREADY_EXISTS | ALREADY_EXISTS | An ingestion config already exists for this workspace. |
10310001 | WORKSPACE_NOT_VALID | INVALID_ARGUMENT | The alert rule workspace is required. |
10310002 | LOCATION_NOT_VALID | INVALID_ARGUMENT | The alert rule location is required. |
10310003 | NAME_NOT_VALID | INVALID_ARGUMENT | The alert rule name must be a valid DNS label. |
10310004 | EXPRESSION_NOT_VALID | INVALID_ARGUMENT | The alert rule expression is required. |
10310005 | RECEIVERS_NOT_PRESENT | INVALID_ARGUMENT | An alert rule must route to at least one notification receiver. |
10310006 | NOT_FOUND | NOT_FOUND | Alert rule not found. |
10310007 | ALREADY_EXISTS | ALREADY_EXISTS | An alert rule with this name already exists for this workspace. |
10310008 | NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | The alert rule is not marked for deletion. |
10311001 | WORKSPACE_NOT_VALID | INVALID_ARGUMENT | The silence workspace is required. |
10311002 | MATCHERS_EMPTY | INVALID_ARGUMENT | A silence must declare at least one matcher. |
10311003 | WINDOW_NOT_VALID | INVALID_ARGUMENT | The silence start time must be before its end time. |
10311004 | NOT_FOUND | NOT_FOUND | Silence not found. |
10311005 | NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | The silence is not marked for deletion. |
10605001 | UNKNOWN_SCHEMA_VERSION | INVALID_ARGUMENT | Schema version is not recognized. |
10605002 | UNKNOWN_OPERATION_RESOURCE_TYPE | INVALID_ARGUMENT | Operation resource type is not recognized. |
10606001 | UNKNOWN_INTEGRATION_VERSION | INVALID_ARGUMENT | The integration version is not recognized. |
10606002 | SINK_DESTINATION_NOT_SPECIFIED | INVALID_ARGUMENT | A log sink destination (archive, stream, or external) is required. |
10606003 | SAMPLING_MODE_NOT_SPECIFIED | INVALID_ARGUMENT | A trace sampling mode is required. |
10606004 | TELEMETRY_SOURCE_NOT_SPECIFIED | INVALID_ARGUMENT | An unrecognized telemetry source was supplied. |
10606005 | ALERT_KIND_NOT_SPECIFIED | INVALID_ARGUMENT | An alert rule kind (alert or recording) is required. |
10606006 | ALERT_SIGNAL_NOT_SPECIFIED | INVALID_ARGUMENT | An alert rule signal (metric or log) is required. |
10606007 | NOTIFICATION_RECEIVER_NOT_SPECIFIED | INVALID_ARGUMENT | A notification receiver (webhook, email, or slack) is required. |
10607001 | BACKEND_UNREACHABLE | UNAVAILABLE | The observability backend is unreachable. |
10607002 | QUERY_FAILED | INVALID_ARGUMENT | The observability query was rejected by the backend. |
10607003 | RULE_WRITE_REJECTED | INVALID_ARGUMENT | The observability rule or alerting config was rejected by the backend. |
10607004 | QUERY_TIMED_OUT | DEADLINE_EXCEEDED | The observability query exceeded the hard query timeout. |
10607005 | RESOURCE_NOT_FOUND | NOT_FOUND | The requested telemetry resource was not found in the observability backend. |