This page describes the most frequently encountered errors returned by the
Google Ad Manager API. Errors are returned in the format
`Error.REASON`:

- [`EntityChildrenLimitReachedError`](https://developers.google.com/ad-manager/api/troubleshooting#EntityChildrenLimitReachedError)
- [`QuotaError.EXCEEDED_QUOTA`](https://developers.google.com/ad-manager/api/troubleshooting#QuotaError.EXCEEDED_QUOTA)
- [`AuthenticationError.GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK`](https://developers.google.com/ad-manager/api/troubleshooting#AuthenticationError.GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK)
- [`AuthenticationError.NETWORK_CODE_REQUIRED`](https://developers.google.com/ad-manager/api/troubleshooting#AuthenticationError.NETWORK_CODE_REQUIRED)
- [`AuthenticationError.NETWORK_NOT_FOUND`](https://developers.google.com/ad-manager/api/troubleshooting#AuthenticationError.NETWORK_NOT_FOUND)
- [`AuthenticationError.NO_NETWORKS_TO_ACCESS`](https://developers.google.com/ad-manager/api/troubleshooting#AuthenticationError.NO_NETWORKS_TO_ACCESS)
- [`AuthenticationError.NOT_WHITELISTED_FOR_API_ACCESS`](https://developers.google.com/ad-manager/api/troubleshooting#AuthenticationError.NOT_WHITELISTED_FOR_API_ACCESS)
- [`PermissionError.PERMISSION_DENIED`](https://developers.google.com/ad-manager/api/troubleshooting#PermissionError.PERMISSION_DENIED)
- [`ApiVersionError.UPDATE_TO_NEWER_VERSION`](https://developers.google.com/ad-manager/api/troubleshooting#ApiVersionError.UPDATE_TO_NEWER_VERSION)
- [404 Error](https://developers.google.com/ad-manager/api/troubleshooting#404Error)
- [Unmarshalling Errors](https://developers.google.com/ad-manager/api/troubleshooting#Unmarshalling)

## [Entity limit errors](https://developers.google.com/ad-manager/api/reference/latest/LineItemService.EntityChildrenLimitReachedError)

### `EntityChildrenLimitReachedError`

Summary
:   The maximum number of allowed children has been reached for the entity
    and no more children can be added to that entity.

Recommended handling tips
:   Create a new type of the entity that has reached the max allowed number
    of children and add the child entity you are trying to create to the new one.
    For example if you receive [LINE_ITEM_LIMIT_FOR_ORDER_REACHED](https://developers.google.com/ad-manager/api/reference/latest/LineItemService.EntityChildrenLimitReachedError.Reason#LINE_ITEM_LIMIT_FOR_ORDER_REACHED),
    then you will need to create a new order and add the line item you are trying
    to create to that new order.

## [Quota errors](https://developers.google.com/ad-manager/api/reference/latest/NetworkService.QuotaError)

### `QuotaError.EXCEEDED_QUOTA`

Summary
:   The number of requests made per second is too high and has exceeded the
    allowable limit.

Recommended handling tips
:
    - Use batch methods such as [updateLineItems](https://developers.google.com/ad-manager/api/reference/latest/LineItemService#updateLineItems) by gathering changes locally and making a single request to fulfill those changes all at once.
    - Wait about 5 seconds and then retry the request. Note that this does not guarantee the request will succeed. If it fails again, try increasing the wait time. This is recommended for interactive applications integrating with Ad Manager that are used in real time.
    - Limit requests to 2 per second for Ad Manager networks, or 8 per second for Ad Manager 360 networks. Once again this does not guarantee that every request will succeed, but may help reduce the number of times you receive this error. This is recommended for applications integrating with Ad Manager that do not have real time interaction, such as running nightly reports.

## [Authentication errors](https://developers.google.com/ad-manager/api/reference/latest/NetworkService.AuthenticationError)

### `AuthenticationError.GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK`

Summary
:   The user tried to create a test network using an account that already is
    associated with a network.

Common causes
:   The user did not create a new Google account first before calling
    `NetworkService.makeTestNetwork()`.

Recommended handling tips
:   Create a brand new account before calling
    `NetworkService.makeTestNetwork()`. See [how to create a test network](https://developers.google.com/ad-manager/api/start#enable_api) for more
    information.

### `AuthenticationError.NETWORK_CODE_REQUIRED`

Summary
:   The user did not provide a `networkCode`. To make the request,
    a network code is required.

Common causes
:   Network codes are required for all requests except
    `NetworkService.getAllNetworks()` and
    `NetworkService.makeTestNetwork()`.

Recommended handling tips
:   Include the network code of the network being addressed in the request
    header. Only use a network code available to your account login. You can find
    the code on the Ad Manager website for your account, on the Admin \> Network
    Settings page next to "Network code". More information about setting your
    network code can be found on the [SOAP XML request and
    response headers](https://developers.google.com/ad-manager/api/soap_xml) page.

### `AuthenticationError.NETWORK_NOT_FOUND`

Summary
:   The request could not be made because the network code provided in the
    configuration is not found on the server.

Common causes
:   You have specified an incorrect network code in your configuration.

Recommended handling tips
:   The "trigger" field of the error log will often suggest the correct
    network for the user.

### `AuthenticationError.NO_NETWORKS_TO_ACCESS`

Summary
:   The user is not associated with any network.

Common causes
:   You have not enabled your production account for API access.

Recommended handling tips
:   Enable API access to your production environment. See [Enabling API Access](https://developers.google.com/ad-manager/api/start#enable_api) for information.

### `AuthenticationError.NOT_WHITELISTED_FOR_API_ACCESS`

Summary
:   The customer is not whitelisted for API access.

Common causes
:   Your network is not whitelisted for production, but you provided a [network code](https://developers.google.com/ad-manager/api/soap_xml) in the SOAP Header.
:

Recommended handling tips
:   Enable [API access](https://developers.google.com/ad-manager/api/start#enable_api).
:

## [Permission errors](https://developers.google.com/ad-manager/api/reference/latest/NetworkService.PermissionError)

### `PermissionError.PERMISSION_DENIED`

Summary
:   The user does not have the required permission for the request.

Common causes
:
    - You tried to access an object that exists in another network.
    - You tried to access an object that exists in your network, but you don't have permission to read or update.
    - You tried to perform a task that requires an additional feature to enabled on your account.

Recommended handling tips
:
    - If you are creating a UI, indicate to the user that they did not have permission to perform this action and to speak to their Administrator.
    - If you tried performing a task, such as one involving a premium-only feature that your network does not have permission to do, speak to your account manager about enabling this feature.
    - Remember, test networks are, by default, not Ad Manager 360 networks, meaning that they do not have the premium features found in Ad Manager 360 networks. Speak to your account manager to enable features on your test network.

## [Version errors](https://developers.google.com/ad-manager/api/reference/latest/NetworkService.ApiVersionError)

### `ApiVersionError.UPDATE_TO_NEWER_VERSION`

Summary
:   The application either: initiated a request that requires a newer version
    to succeed; or initiated a request to a deprecated version.

Common causes
:
    - The version of the API call has been deprecated. Please subscribe to our [blog](https://ads-developers.googleblog.com/search/label/ad_manager_api) for deprecation announcements.
    - The request you made requires a newer version of the API to succeed. This is often the case where a feature has been introduced in the UI and in order for the API to send the object correctly, it needs a newer version of the API.

Recommended handling tips
:
    - Stay up to date on API versions; plan on upgrading regularly.
    - Subscribe to our [blog](https://ads-developers.googleblog.com/search/label/ad_manager_api) to be notified about deprecations.

## 404 Error

Summary
:   Your request did not reach the server.

Common causes
:   Your internet connection or proxy may be misconfigured. The version of
    the API you are calling may also be sunsetted.
:

Recommended handling tips
:   Check your internet or proxy configuration and make sure you are using a
    recent version of the API. You may want to upgrade your client library to
    the most recent version as well.
:

Prevention tips
:   Check the [Ad
    Manager Help Community](https://support.google.com/admanager/community) and our [blog](https://ads-developers.googleblog.com/search/label/ad_manager_api)
    to stay updated on the latest Ad Manager API news.

## Unmarshalling Error

Summary
:   The SOAP XML in your request did not conform to the WSDL
    specification.

Common causes
:   The request contains fields or entities not included in the WSDL
    specification, or in the wrong namespace.
:
:   There is a type mismatch in the request (e.g., an integer field has a
    string value).
:

Recommended handling tips
:   Ensure that your request conforms to the WSDL specification.
:
:   Use a [client library](https://developers.google.com/ad-manager/api/clients) to generate
    valid SOAP, and use this for comparison. All client libraries support
    logging of SOAP requests and responses.
: