> For the complete documentation index, see [llms.txt](https://docs.openiam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openiam.com/troubleshooting/connectors/sync-vs-async-source.md).

# The connector synchronization source

What the connector synchronization source does, and what a configuration still set to the retired CONNECTOR value tells you about the upgrade.

| Symptom                                                            | Likely cause                                                            | Resolution                                                    |
| ------------------------------------------------------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------- |
| A synchronization whose source is `CONNECTOR` reads nothing at all | That source was retired, and the migration that rewrites it did not run | [The retired CONNECTOR source](#the-retired-connector-source) |
| A run sits at `The Asynchronous search Request has been send`      | Normal — it is waiting for the connector to answer                      | Nothing, unless the connector never answers                   |

A synchronization that reads from a connector uses the source **Connector — Asynchronous and Multi-Threaded**, stored as `CONNECTOR_ASYNC`. It is the only connector source the platform still offers.

## What asynchronous means here

It describes how the synchronization waits for the connector's answer to a search.

`CONNECTOR_ASYNC` posts the search request and **returns**, releasing the queue and the synchronization thread. The run resumes when the connector posts its response and the synchronization service consumes it. The audit log records the pause as:

{% code overflow="wrap" %}

```
The Asynchronous search Request has been send. Sync will continue ones Connector return the data.
```

{% endcode %}

{% hint style="info" %}
**A run sitting at "search request sent" is not stuck.** That is the normal state between the request going out and the connector answering. Look at the connector rather than the synchronization — one that never answers leaves the run waiting, which is the symptom [Sync through a connector returns nothing](/connector-configuration/4-troubleshootingconnector.md) covers.
{% endhint %}

## The retired CONNECTOR source

A plain `CONNECTOR` source once ran the search on the synchronization thread and held it until the connector replied. **It no longer exists.** The supported sources are `CSV`, `RDBMS`, `CONNECTOR_ASYNC`, `CUSTOM` and `LOG`, in both the platform and the Webconsole — so the source is not offered anywhere, and a configuration cannot be set back to it by hand.

{% hint style="warning" %}
**Seeing one is a sign the upgrade skipped a migration, not an ordinary leftover.** Upgrading to 4.2.2.0 runs `V4.2.2.0.052__OE-3160`, which rewrites every row:

{% code overflow="wrap" %}

```sql
UPDATE SYNCH_CONFIG SET SYNCH_SRC='CONNECTOR_ASYNC' WHERE SYNCH_SRC = 'CONNECTOR';
```

{% endcode %}

It ships for MySQL, MSSQL, Oracle and Postgres alike, so a correctly upgraded deployment has none left. If you have one, check whether that migration applied before changing the row — whatever stopped it will have stopped the others in the same version.
{% endhint %}

The run itself fails silently. The adapter factory matches the stored source against the five values above and falls through to `return null` for anything else, so there is no adapter to read with and nothing is reported as broken.

{% hint style="info" %}
**The same silent `null` catches a `CUSTOM` source with no script selected.** `CUSTOM` is matched, finds no adapter script id, and falls through to the same `return null` as an unknown source. A run that reads nothing, with a source that looks right, is worth checking for this too.
{% endhint %}

### Finding them

The list is **Synchronization Configurations**, and its **Source** column shows the readable name rather than the stored value — so `CONNECTOR_ASYNC` reads as *Connector — Asynchronous and Multi-Threaded*.

{% hint style="info" %}
**A retired row does not announce itself.** The label *Connector — Single-Threaded* is still in the message bundle even though the source behind it is gone, so a legacy row can present as a plausible option rather than as an error. Querying `SYNCH_SRC` directly is the reliable check:

{% code overflow="wrap" %}

```sql
SELECT SYNCH_CONFIG_ID, NAME, SYNCH_SRC FROM SYNCH_CONFIG WHERE SYNCH_SRC = 'CONNECTOR';
```

{% endcode %}
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openiam.com/troubleshooting/connectors/sync-vs-async-source.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
