> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Important Changes

> Significant platform changes that may affect your integration.

<Update label="2026-05-19" description="New HTTP status code for integration setup errors">
  ## Integration setup errors now return HTTP status code 409 instead of 503

  From **Tuesday, May 19, 2026**, the following [Kombo error codes](/guides/errors) will start returning **HTTP `409 Conflict`** instead of **HTTP `503 Service Unavailable`**:

  | Error code                                                                        | Meaning                                                      |
  | --------------------------------------------------------------------------------- | ------------------------------------------------------------ |
  | [`INTEGRATION.SETUP_INCOMPLETE`](/guides/errors#integration-setup_incomplete)     | The integration setup hasn't been finished yet.              |
  | [`INTEGRATION.SETUP_SYNC_PENDING`](/guides/errors#integration-setup_sync_pending) | The initial sync after connection is still running.          |
  | [`INTEGRATION.QA_FAILED`](/guides/errors#integration-qa_failed)                   | The integration's setup data didn't pass our quality checks. |

  We're making these changes in accordance with [our error handling best practices](/guides/errors#error-format) that we announced with the release of structured error codes in August 2025:

  Error handling logic on top of the Kombo API should, if available, **always make use of the `error.code` field** in the response, and **only** fall back to the HTTP status code if the `error.code` is not present (which should rarely happen).

  We're changing these specific codes because `409 Conflict` ([RFC 7231](https://www.rfc-editor.org/rfc/rfc7231#section-6.5.8)) matches the actual error state better. The `error.code` values themselves are **not changing**.

  ### What you should do

  Start by checking whether your implementation currently branches on the HTTP status code (`503` specifically, or `5xx` in general) when handling any of the three error codes above.

  * **If it doesn't, you're all set** and don't need to take any action.
  * **If it does**, please update that logic to rely on the `error.code` field instead of the HTTP status code, so it keeps behaving correctly once these errors start returning `409`.

  While you're at it, you may want to consider adding explicit handling for [`INTEGRATION.SETUP_INCOMPLETE`](/guides/errors#integration-setup_incomplete), [`INTEGRATION.SETUP_SYNC_PENDING`](/guides/errors#integration-setup_sync_pending), and [`INTEGRATION.QA_FAILED`](/guides/errors#integration-qa_failed) if you don't have it yet:

  * `INTEGRATION.SETUP_INCOMPLETE` and `INTEGRATION.QA_FAILED` should be surfaced to the affected end-customer or admin user because they usually require manual intervention.
  * `INTEGRATION.SETUP_SYNC_PENDING` resolves once the initial sync finishes, but initial syncs can take hours in some cases. We recommend relying on [webhooks](guides/webhooks) instead of retrying silently or polling aggressively.
</Update>

<Update label="2026-03-20" description="Concurrency limiting enforced">
  ## Action concurrency limiting is now enforced

  Kombo now enforces concurrency limits on action endpoints. Previously,
  concurrent requests were measured but not rejected. Now, when more than 30
  action requests are in flight simultaneously for a single integration,
  additional requests are rejected with HTTP `429` and the error code
  `PLATFORM.CONCURRENCY_LIMIT_EXCEEDED`.

  **Who is affected:** Customers sending many parallel action requests (e.g.,
  bulk-creating candidates or moving applications) may start receiving `429`
  responses they were not receiving before. Model read endpoints are not affected
  (e.g. `GET /ats/candidates`)

  **What to do:**

  * Handle the new `PLATFORM.CONCURRENCY_LIMIT_EXCEEDED` error code in your
    retry logic.
  * Use exponential backoff starting at \~1s.
  * Optionally, check the `Concurrency-Remaining` response header to throttle
    proactively.

  See the full [Concurrency Limiting](guides/concurrency-limiting) guide for
  details.
</Update>
