---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.1
alternate:
  - https://yandex.com/dev/adfox/doc/en/rest-statistics/error-codes.md
  - https://yandex.com/dev/adfox/doc/ru/rest-statistics/error-codes.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/adfox/doc/en/llms.txt

# Error codes

Error structure:

```json 
{
  "error": {
    "code": "UNKNOWN_METRIC",
    "message": "Unknown metric: impressions_xxx"
  }
}
```

## Complete table of error codes

#|
|| **Code** | **HTTP** | **Message** | **Description** ||
|| `EMPTY_METRICS` | 400 | `metrics must contain at least one non-blank value`  | Metrics not specified. ||
|| `EMPTY_DATE_RANGE` | 400 | `dateRange is empty`  | Period not specified. ||
|| `INVALID_DATE_RANGE` | 400 | `dateRange.from (<from>) must be <= dateRange.to (<to>)` | The start date is later than the end date. ||
|| `INVALID_DATE_FORMAT` | 400 | `<field> must match YYYY-MM-DD, got '<value>'`  | Invalid date format (expected `YYYY-MM-DD`). ||
|| `DATE_RANGE_TOO_LONG` | 400 | `date range exceeds 365 days` | The period exceeds 365 days. ||
|| `UNKNOWN_METRIC` | 400 | `Unknown metric '<id>'` | Unknown metric. ||
|| `UNKNOWN_DIMENSION` | 400 | `Unknown dimension '<id>'` | Unknown dimension. ||
|| `UNKNOWN_FILTER_FIELD` | 400 | `Unknown filter field '<id>'` | Unknown filter field. ||
|| `INVALID_FILTER` | 400 | Details — for example, `filters[0].field is required`. | Invalid filter (for example, the `field` parameter is missing). ||
|| `INVALID_FILTER_VALUE` | 400 | Details — for example, `filters[0].value must be a scalar for this operator`. | Invalid filter value type. ||
|| `UNSUPPORTED_FILTER_OPERATOR` | 400 | Including `filters[0].operator is missing or unknown (allowed: …)`. | The operator isn't supported. ||
|| `OPERATOR_NOT_SUPPORTED` | 400 | `Operator '<op>' is not supported for filter field '<field>'` | The operator isn't allowed for this field. ||
|| `INVALID_LIMIT` | 400 | `limit must be in (0 — 1000000), got <n>` | Invalid `limit` value. ||
|| `MISSING_OWNER_ID` | 400 | `ownerId is required` — the request from an advertiser or website owner doesn't include `ownerId` . | Missing required `ownerId`. ||
|| `INVALID_REQUEST` | 400 | No request body / malformed JSON / other transport issues. | Invalid request (malformed JSON or incorrect parameters). ||
|| `BAD_REQUEST` | 400 | Transport‑level fallback for UMR errors without a dedicated code. | General request error. ||
|| `ACCESS_DENIED` | 403 | `Report constructor is not available for this user  / Your cannot start report` | You don't have the required permissions to access the API. ||
|| `OWNER_ID_FORBIDDEN` | 403 | `ownerId is not allowed for this user` | The passed `ownerId` isn't allowed. ||
|| `REPORT_NOT_FOUND` | 404 | Mapped from UMR. The POST method rarely returns `REPORT_NOT_FOUND`. | Task not found. ||
|| `TASK_FAILED` | 409 | `Task failed` | Error executing the task. ||
|| `RESULT_EXPIRED` | 410 | `Report result expired` | The result is no longer valid or available. ||
|| `REPORT_NOT_READY` | 425 | `Report is not ready yet` | The report hasn't been generated yet. ||
|| `TOO_MANY_REQUESTS` | 429 | Parallel request limit exceeded in UMR. | Request limit exceeded ||
|| `INTERNAL_ERROR` | 500 | Mapped from UMR. `UNKNOWN_ERROR` indicates an internal generation error. | Internal server error. ||
|#

## Sample message for an error code

```
INVALID_REQUEST

:

level query parameter is required

id query parameter is required

unsupported level '…'

query parameter 'ownerId' must be a positive integer
```

{% note info %}

Always resolve errors based on the `code` field. 

The `message` field only provides a quick summary.

{% endnote %}


