> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.pixalate.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.pixalate.com/_mcp/server.

# SCO error and reason codes

> Reference for the SCO validation (41xx) and verification (42xx, 44xx) error codes shown in Pixalate's Analytics SCO reports, with the action to take for each and how they relate to the SCO Validation & Verification API reason codes.

When Pixalate [validates and verifies](/compliance/sco) a supply chain object (SCO) in your Analytics traffic, it records an error code for each problem it finds. You'll see these codes in the [Analytics SCO reports](/analytics/sco-reports), where you can filter by them. More than one code can apply to the same SCO.

> **Note**
>
> These codes are for the **Analytics dashboard SCO reports**. The [SCO Validation & Verification API](/apis/sco-api) returns a different set of reason codes (`101`, `102` and `201` to `209`). If you use the API, see [API reason codes](/apis/sco-api#reason-codes). The table [below](#codes-in-the-api) shows which API codes share a name with these.

## Validation errors

Validation errors mean the SCO isn't well formed: it can't be parsed, or required fields are missing. In the Analytics dashboard, all validation errors appear under one label: **SCO deserialization failed**.

| Code   | Error                       | What it means                                                                                     | What to do                                                                            |
| ------ | --------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `4101` | Missing version             | The SCO doesn't specify a version, which is needed to choose the correct validation rules.        | Make sure the SCO includes the `ver` field with the correct version.                  |
| `4102` | Missing complete flag       | The SCO doesn't contain a `complete` flag, which is needed to tell whether the chain is complete. | Make sure the SCO includes the `complete` flag, whether or not the chain is complete. |
| `4104` | Missing node ID             | A node in the SCO has no ID.                                                                      | Make sure every node in the SCO includes a unique ID.                                 |
| `4105` | Invalid node ID format      | A node ID isn't in the correct format.                                                            | Check that the node ID matches the format in the OpenRTB specification.               |
| `4106` | Incomplete node information | Required information for a node is missing or incomplete.                                         | Check and fill in all required fields for each node.                                  |

## Verification errors

Verification errors mean the SCO is well formed, but a node doesn't check out against the publisher's ads.txt or app-ads.txt, or a seller's sellers.json.

### SCO and node errors

| Code   | Error                               | What it means                                                                                            | What to do                                                                                                                     |
| ------ | ----------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `4401` | SCO not provided                    | No SCO was provided for these impressions.                                                               | Make sure your direct partners, and their upstream partners, pass the SCO.                                                     |
| `4402` | SCO declared incomplete             | The SCO's `complete` flag was set to `0`, declaring the chain incomplete.                                | Work with your partners to fill the gaps in the SCO.                                                                           |
| `4403` | Publisher missing in SCO            | The first node in the SCO didn't point to a publisher.                                                   | Make sure the first entity in the SCO has a partnership with the publisher.                                                    |
| `4404` | Direct seller not authorized        | The first seller in the SCO isn't listed as a `DIRECT` seller in the publisher's ads.txt or app-ads.txt. | Make sure the first entity in the SCO is listed as an authorized seller in the publisher's ads.txt or app-ads.txt.             |
| `4405` | Reseller not authorized             | A seller on a reseller node in the SCO isn't listed in the publisher's ads.txt or app-ads.txt.           | Make sure the seller on that reseller node is listed as an authorized reseller in the publisher's ads.txt or app-ads.txt.      |
| `4406` | Reseller listed as direct seller    | A seller on a reseller node is listed in the publisher's ads.txt as `DIRECT`, not `RESELLER`.            | Make sure the seller on that reseller node is listed as `RESELLER` in the publisher's ads.txt or app-ads.txt.                  |
| `4407` | Link in SCO missing in sellers.json | A seller entry in a node didn't match the sellers.json of the seller on the next node.                   | Make sure the entity on that node is listed correctly, with the correct seat ID, in the relevant sellers.json file.            |
| `4408` | Unable to resolve publisher domain  | Pixalate couldn't resolve the publisher domain to fetch its ads.txt or app-ads.txt.                      | Make sure the correct website or app information is passed, or fix the confidential or missing entry in the sellers.json file. |

### File errors

| Code   | Error                     | What it means                                                          | What to do                                                                          |
| ------ | ------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `4201` | ads.txt not resolved      | The ads.txt file for the site wasn't found.                            | Check the file's location manually, and work with the publisher to fix the problem. |
| `4202` | app-ads.txt not resolved  | The app-ads.txt file for the app wasn't found.                         | Check the file's location manually, and work with the publisher to fix the problem. |
| `4203` | sellers.json not resolved | The sellers.json file for one or more sellers in the SCO wasn't found. | Check the file's location manually, and work with the seller to fix the problem.    |

## Codes in the API

The [SCO Validation & Verification API](/apis/sco-api) uses its own numbering. This table lists each API reason code next to the Analytics code with the same name, where there is one.

| API code | Name                                | Analytics code with the same name                                               |
| -------- | ----------------------------------- | ------------------------------------------------------------------------------- |
| `101`    | SCO declared incomplete             | `4402`                                                                          |
| `102`    | SCO deserialization failed          | `4101` to `4106` (shown in Analytics as SCO deserialization failed)             |
| `201`    | sellers.json not resolved           | `4203`                                                                          |
| `202`    | ads.txt not resolved                | `4201`                                                                          |
| `203`    | app-ads.txt not resolved            | `4202`                                                                          |
| `204`    | Unable to resolve seller domain     | None. The closest Analytics code is `4408`, Unable to resolve publisher domain. |
| `205`    | Publisher missing in SCO            | `4403`                                                                          |
| `206`    | Direct seller not authorized        | `4404`                                                                          |
| `207`    | Reseller not authorized             | `4405`                                                                          |
| `208`    | Reseller listed as direct seller    | `4406`                                                                          |
| `209`    | Link in SCO missing in sellers.json | `4407`                                                                          |

`4401` (SCO not provided) has no API equivalent, because every API request includes an SCO.

## Related

* [SCO validation and verification](/compliance/sco): what the SCO is, and the glossary.
* [Supply chain (SCO) reports](/analytics/sco-reports): filter your traffic by these codes.
* [SCO Validation & Verification API](/apis/sco-api): check SCOs in real time.

Questions? Email [support@pixalate.com](mailto:support@pixalate.com).