--- title: Troubleshooting Push source issues slug: '95' canonical_url: https://docs.coveo.com/en/95/ collection: index-content source_format: adoc --- # Troubleshooting Push source issues This article outlines the common issues encountered when indexing content using a Push source. Issues may arise during HTTP requests to the Push API. The Coveo Push API provides error codes that can help diagnose these issues. This article lists [common Push API errors](#common-push-api-errors), their likely causes, and suggested resolutions. When using the Push API to manage items in a source, the service doesn't immediately add, update, or delete content in the index. A Push API request typically triggers the indexing process, which is asynchronous. Even if an API request returns a success status code, a failure can still occur downstream in the [Coveo indexing pipeline](https://docs.coveo.com/en/1893/). **Indexing pipeline diagram**
Details ![Diagram showing indexing process | Coveo](https://docs.coveo.com/en/assets/images/index-content/indexing-pipeline-stages.png)
This article also addresses [issues that aren't specifically related to Push API requests](#indexing-process-and-other-issues), many of which the [**Log Browser**](https://platform.cloud.coveo.com/admin/#/orgid/logs/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/logs/browser/)) can help diagnose. ## Common Push API errors ### 400 - INVALID_JSON > **Context and symptoms** > > Your API request fails with a 400 `INVALID_JSON` error. > > .Likely cause and resolution >
Details > > **Cause** > > The body of your Push API request may be incorrectly formatted, or it may lack certain required key-value pairs. > > **Resolution** > > * Use a JSON validation tool to ensure that the body of your request is valid JSON. > * If you're pushing [items](https://docs.coveo.com/en/210/), ensure that the request body is correctly formatted. For more information, see [Item models](https://docs.coveo.com/en/78#item-models). > > The request body must not contain any duplicate keys or sub-objects. For more information, see [About Push Source Item Metadata](https://docs.coveo.com/en/115/). > * If you're pushing an uncompressed item, ensure that the request body minimally includes the `data` key-value pair. For more information, see [Use the data property](https://docs.coveo.com/en/31/). > * If you're pushing a small compressed item (less than 5 megabytes), ensure that the request body minimally includes the `compressedBinaryData` key-value pair. For more information, see [Use the compressedBinaryData property](https://docs.coveo.com/en/164/). > * If you're pushing a batch of items or a single large compressed item (5 megabytes or more), ensure that the request body minimally includes the `compressedBinaryDataFileId` key-value pair. For more information, see [Use the compressedBinaryDataFileId property](https://docs.coveo.com/en/69/). > >
### 400 - ORGANIZATION_IS_PAUSED > **Context and symptoms** > > Your API request fails with a 400 `ORGANIZATION_IS_PAUSED` error. > > .Likely cause and resolution >
Details > > **Cause** > > You're attempting to make a request against a [Coveo organization](https://docs.coveo.com/en/185/) that's currently inactive. > > **Resolution** > > Reactivate your organization by logging in to the [Coveo Administration Console](https://platform.cloud.coveo.com/) ([platform-ca](https://platform-ca.cloud.coveo.com/) |[platform-eu](https://platform-eu.cloud.coveo.com/) | [platform-au](https://platform-au.cloud.coveo.com/)). > Then, try pushing your items again. > >
### 401 - UNAUTHORIZED > **Context and symptoms** > > Your API request fails with a 401 `UNAUTHORIZED` error. > > .Likely cause and resolution >
Details > > **Cause** > > You're trying to make an unauthenticated Push API request. > > **Resolution** > > Ensure that you include the `Authorization: Bearer ` header in your request. > Replace `` with your [Push source API key](https://docs.coveo.com/en/1546#api-key). > > If you currently don't have an API key, select your source on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, and then click **Create API key** in the Action bar to create one. > >
### 401 - INVALID_TOKEN > **Context and symptoms** > > Your API request fails with a 401 `INVALID_TOKEN` error. > > .Likely cause and resolution >
Details > > **Cause** > > The [Coveo Platform](https://docs.coveo.com/en/186/) doesn't recognize the access token you're using to [authenticate](https://docs.coveo.com/en/2120/) your Push API request. > > **Resolution** > > * If you're using an API key to authenticate your call, this key may have been disabled or deleted in the target Coveo organization, or your IP address may not have access to this key. > Ask an administrator to create a new API key with the required privileges for you. > To do so, they can select your source on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, and then click **Create API key** in the Action bar. > > * If you're using an OAuth2 token to authenticate your call, this token may be expired. > Try again using a fresh [Coveo OAuth 2.0 token](https://docs.coveo.com/en/123/). > >
### 403 - ACCESS_DENIED > **Context and symptoms** > > Your API request fails with a 403 `ACCESS_DENIED` error. > > .Likely cause and resolution >
Details > > **Cause** > > The access token you're using to authenticate your Push API request doesn't grant you sufficient privileges to perform the request. > > **Resolution** > > * If you're using an API key to authenticate your call, this API key may not have the required privileges. > Ask an administrator to create a new API key for you with the required privileges on the Push source. > To do so, they can select your source on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, and then click **Create API key** in the Action bar. > > * If you're using an OAuth 2.0 token to authenticate your call, your identity may not have the required privileges in the target Coveo organization. > Ask an administrator to grant you these privileges or to create an API key for you with the required privileges on the Push source. > To do so, they can select your source on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, and then click **Create API key** in the Action bar. > >
### 403 - ACCESS_DENIED (Request has expired) > **Context and symptoms** > > * You're pushing a batch of items to a file container. > > * The API request fails with a 403 `ACCESS_DENIED` error and a message indicating that the request has expired. > > .Likely cause and resolution >
Details > > **Cause** > > The file container `uploadUri` you're using to push items has expired. > File container URLs are only valid for 60 minutes. > > **Resolution** > > * [Create a new file container](https://docs.coveo.com/en/43/). > > * Use the new container's `uploadUri` to [upload item batches](https://docs.coveo.com/en/90#step-2-upload-the-content-update-into-the-file-container) and its `fileId` to [transfer the content into your source](https://docs.coveo.com/en/90#step-3-push-the-file-container-into-a-push-source). > >
### 404 - ERROR_DESERIALIZING_BATCH_DOCUMENT_FROM_S3 > **Context and symptoms** > > Your API request fails with a 404 `ERROR_DESERIALIZING_BATCH_DOCUMENT_FROM_S3` error. > > .Likely cause and resolution >
Details > > **Cause** > > A large file in a batch document that you were trying to retrieve from your S3 Bucket was unable to be deserialized. > > **Resolution** > > * If you're pushing uncompressed raw textual item data, ensure that it's UTF-8 encoded. > > * Ensure that your batch document is a valid JSON object. > > * Consider decreasing or splitting up the item update into smaller batches. > For more information, see [Manage batches of items in a Push source](https://docs.coveo.com/en/90/). > > * Ensure that there are no duplicate keys within the JSON batch document. > >
### 412 - DOCUMENT_LIMIT_EXCEEDED > **Context and symptoms** > > Your API request fails with a 412 `DOCUMENT_LIMIT_EXCEEDED` error. > > In addition, the [**System Performance**](https://platform.cloud.coveo.com/admin/#/orgid/organization/system-performance/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/organization/system-performance/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/organization/system-performance/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/organization/system-performance/)) page may show that you've exceeded the maximum number of items you can [index](https://docs.coveo.com/en/204/). > > .Likely cause and resolution >
Details > > **Cause** > > You have reached the maximum number of items you can [index](https://docs.coveo.com/en/204/) with the Push API. > > **Resolution** > > Delete items in one of your Push [sources](https://docs.coveo.com/en/246/), preferably using a [batch call](https://docs.coveo.com/en/90/), or [delete one of your Push sources](https://docs.coveo.com/en/3390#delete-a-source). > >
### 412 - INVALID_PARAMETER > **Context and symptoms** > > Your API request fails with a 412 `INVALID_PARAMETER` error. > > .Likely cause and resolution >
Details > > **Cause** > > At least one of the arguments you provided when making your Push API request is invalid. > > **Resolution** > > Ensure that all of the arguments you pass when making your request are of the expected type (that is, Boolean, integer, long, etc.). > >
### 412 - MISSING_PARAMETER > **Context and symptoms** > > Your API request fails with a 412 `MISSING_PARAMETER` error. > > .Likely cause and resolution >
Details > > **Cause** > > You didn't provide a value for at least one of the required parameters of your Push API request. > > **Resolution** > > Ensure that you pass a valid argument for all of the required path and query parameters of the request. > >
### 412 - SOURCE_DOES_NOT_EXIST > **Context and symptoms** > > Your API request fails with a 412 `SOURCE_DOES_NOT_EXIST` error. > > .Likely cause and resolution >
Details > > **Cause** > > The [Coveo Platform](https://docs.coveo.com/en/186/) can't find the `sourceId` you provided as an argument when making your Push API request. > > **Resolution** > > * Ensure that you have correctly spelled the [`sourceId`](https://docs.coveo.com/en/3390#copy-a-source-name-or-id) of the target source. > > * Ensure that the source you want to push content into has been successfully created in the target [Coveo organization](https://docs.coveo.com/en/185/). > > NOTE: Creating the very first source in a new Coveo organization usually takes around 10 minutes, since this organization needs to be provisioned first. > > Once the organization has been successfully provisioned, though, creating subsequent sources should only take a few seconds. > >
### 413 - Request Entity Too Large > **Context and symptoms** > > Your API request fails with a 413 `Request Entity Too Large` error. > > .Likely cause and resolution >
Details > > **Cause** > > You're trying to perform a push request whose total size exceeds the allowed limit. For more information, see [Push API Limits - Request Size Limits](https://docs.coveo.com/en/63#request-size-limits). > > **Resolution** > > * If you're pushing a single compressed or uncompressed item whose data size exceeds 5 megabytes, use a large file container to push the item, rather than directly providing its `data` or `compressedBinaryData` in the body of the request. > For more information, see [Use the compressedBinaryDataFileId property](https://docs.coveo.com/en/69/). > > * If you're pushing a batch of items whose total size exceeds 256 megabytes, try pushing smaller batches. > > * If you're using a large file container to push a single large item whose uncompressed size exceeds 256 megabytes, try compressing the item using one of the supported algorithms (Deflate, GZip, LZMA, or ZLib) before pushing it again. > >
### 415 - UNSUPPORTED_MEDIA_TYPE > **Context and symptoms** > > Your API request fails with a 415 `UNSUPPORTED_MEDIA_TYPE` error. > > .Likely cause and resolution >
Details > > **Cause** > > You're trying to make a Push API request using the wrong content type. > > **Resolution** > > If you're not uploading content to an AWS container, ensure that you include the `Content-Type: application/json` HTTP header in your request. > > If you're uploading content to an AWS container, include the `Content-Type: application/octet-stream` and `x-amz-server-side-encryption: AES256` headers instead. > For more information, see [Use the compressedBinaryDataFileId property](https://docs.coveo.com/en/69/). > >
### 429 > **Context and symptoms** > > Your API request fails with a 429 response. > The precise error code depends on the exact limit you've exceeded, for example, `TOO_MANY_REQUESTS`, `TOO_MANY_DOCUMENTS_DAILY`, or `RELATIONSHIP_UPDATE_RATE_LIMIT_EXCEEDED`. > > In addition, the [**System Performance**](https://platform.cloud.coveo.com/admin/#/orgid/organization/system-performance/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/organization/system-performance/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/organization/system-performance/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/organization/system-performance/)) page may show that you've reached a Push API limit. > > .Likely cause and resolution >
Details > > **Cause** > > * You have exceeded one of your Push API limits. > > * This error can also occur when first using the Push API after a period of inactivity (around 15 minutes). > In such cases, the Push API needs to perform requests to other Coveo APIs, and it's possible to exceed the allowed number of requests in a given amount of time, or the allowed number of concurrent requests to those other APIs. > As a consequence, you may be throttled by those other APIs. > > * Coveo declined your request due to a [reduced indexing capacity](https://docs.coveo.com/en/n91c0225/). > > **Resolution** > > * If you have exceeded one of your Push API limits, wait until the limit resets. > For example, wait until midnight UTC for a daily limit, and ensure you respect the limit going forward. > In addition, you can implement an [exponential backoff strategy](https://docs.coveo.com/en/n91c0225#how-can-i-automatically-handle-the-situation) to retry your requests after a certain amount of time. > > * If you have not exceeded one of your Push API limits, wait until your requests are no longer being throttled before using the service again. > In the future, ensure that you make Push API requests at a slower pace, especially after a period of inactivity. > > For more information, see [Push API limits](https://docs.coveo.com/en/63/). > >
### 5XX > **Context and symptoms** > > Your API request fails with a 5XX error. > > .Likely cause and resolution >
Details > > **Cause** > > You have triggered an unhandled error, or there's an issue with the Push API service itself, or with AWS. > For more information, see [Error Handling Patterns in API Gateway and AWS Lambda](https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/). > > **Resolution** > > * If you're getting a `502 Bad Gateway` error, ensure that the `documentId` for the item is properly URL-encoded, and then try again. > > * If you're obviously not responsible for the error, try performing the request again (with an exponential backoff). > AWS issues typically resolve themselves, given enough time. > > * You can monitor the status of Coveo from [status.cloud.coveo.com](https://status.cloud.coveo.com). > >
## Indexing process and other issues ### JSON deserialization error > **Context and symptoms** > > * You pushed a batch of items to a Coveo source, but some or all of the items failed to be indexed. > > * In the [**Log Browser**](https://platform.cloud.coveo.com/admin/#/orgid/logs/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/logs/browser/)), you see the `ERROR_DESERIALIZING_BATCH_DOCUMENT_FROM_S3` error code during the `Consuming` stage. > > .Likely cause and resolution >
Details > > **Cause** > > The batch of items you uploaded to the file container contains improperly escaped or encoded characters. > For example, the batch may contain double quotes in string values that should be escaped. > > See the [JSON standard documentation rules regarding strings](https://datatracker.ietf.org/doc/html/rfc8259#section-7). > > **Resolution** > > When uploading batches of items to a file container, use JSON libraries or tools for your programming language to ensure proper formatting. > >
### Total metadata size limit exceeded > **Context and symptoms** > > When trying to push an item to your Coveo source, the [**Log Browser**](https://platform.cloud.coveo.com/admin/#/orgid/logs/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/logs/browser/)) shows the document as rejected with the `TOTAL_METADATA_SIZE_EXCEEDS_LIMIT` error code. > > .Likely cause and resolution >
Details > > **Cause** > > The total metadata size of the item you're trying to push exceeds the limit of 52428800 bytes. > > **Resolution** > > The limit can't be increased. > You must reduce the size of the metadata you're trying to push. > >
### Source refresh timeout > **Context and symptoms** > > * The [**Log Browser**](https://platform.cloud.coveo.com/admin/#/orgid/logs/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/logs/browser/)) shows no errors. > > * The [**Activity Browser**](https://platform.cloud.coveo.com/admin/#/orgid/activity/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/activity/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/activity/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/activity/browser/)) shows a communication issue with error code `SOURCE_REFRESH_TIMEOUT` and a message indicating that the source operation was stopped due to inactivity. > > .Likely cause and resolution >
Details > > **Cause** > > The source was left in the `REBUILD` status for too long without any activity. > > **Resolution** > > . Perform a [`Set the status of a Push source`](https://docs.coveo.com/en/35#update-the-status-of-a-push-source) request to set the source status to `REBUILD`. > > . Once the source shows as `Retrieving content`, perform another [`Set the status of a Push source`](https://docs.coveo.com/en/35#update-the-status-of-a-push-source) request to set the source status back to `IDLE`. > > . After a few minutes, the source will return to the idle state and display `Ready to receive content`. > >
### SSL connection issue with the C# Platform SDK > **Context and symptoms** > > * You're using the [Coveo C# Platform SDK](https://github.com/coveooss/platform-sdk#coveo-c-platform-sdk) to push a batch of items to a Coveo source. > > * You get a The `SSL connection could not be established, see inner exception` error. > > .Likely cause and resolution >
Details > > **Cause** > > The following package may be missing: `System.ServiceModel.Primitives`. > > **Resolution** > > Add the `System.ServiceModel.Primitives` NuGet package to your project. > See [Coveo.Connectors.Utilities.PlatformSdk](https://www.nuget.org/packages/Coveo.Connectors.Utilities.PlatformSdk/#supportedframeworks-body-tab) for the .NET framework the current version of the SDK targets. > >
### Out of sequence operation > **Context and symptoms** > > * The [**Log Browser**](https://platform.cloud.coveo.com/admin/#/orgid/logs/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/logs/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/logs/browser/)) shows the `OUT_OF_SEQUENCE_OPERATION` error code on an item. > > * Other symptoms may vary. > For example, an `Add` operation may appear as successful (that is, green in the [**Activity Browser**](https://platform.cloud.coveo.com/admin/#/orgid/activity/browser/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/activity/browser/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/activity/browser/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/activity/browser/))), with the operation result being `Skipped`. > > .Likely cause and resolution >
Details > > **Cause** > > You provided [`orderingId`](https://docs.coveo.com/en/147/) values on add, update, or delete requests that break the chronological sequence. > > **Resolution** > > Depending on the severity of the situation, you may need to [reset the Push source](https://docs.coveo.com/en/35#reset-a-push-source). > > To prevent this issue from happening again, don't provide `orderingId` values on Push API requests when the Coveo service automatically assigns this value as the current 13-digit number of milliseconds since the Unix Epoch. > > If you need to use the [`Delete old items`](https://docs.coveo.com/en/131/) request, you can [inspect an item](https://docs.coveo.com/en/2053#inspect-search-results) to find its `orderingId` value. > >
### "Delete old items" request doesn't delete items > **Context and symptoms** > > * You performed a [`Delete old items`](https://docs.coveo.com/en/131/) request. > > * The status of the request was `Success`. > > * No items were deleted. > > .Likely cause and resolution >
Details > > **Cause** > > The [`orderingId`](https://docs.coveo.com/en/147/) parameter represents the 13-digit number of milliseconds since the Unix Epoch. > The `orderingId` value you set in the request is lower than that of all items in the source. > > **Resolution** > > Perform the [`Delete old items`](https://docs.coveo.com/en/131/) request again using an appropriate `orderingId` value. > To get an idea of an appropriate `orderingId` value for the API request, you can [inspect an item](https://docs.coveo.com/en/2053#inspect-search-results) in your source to find its `orderingId` value. > >