Connector known issues

edit

Connector known issuesedit

Enterprise Search service: Native Connectorsedit

In versions 8.13.0, 8.13.1, 8.13.2, 8.13.3, 8.13.4, 8.14.0, 8.14.1, and 8.14.2, Native Connectors (connectors running on Elastic-managed infrastructure in Elastic Cloud) may not be accurately identified by Elastic Cloud’s automatic downscaling logic.

If you use Native connectors and your cluster meets all of the following additional criteria, then your Enterprise Search node and the Native connectors running on it will automatically be removed from your deployment:

  • Doesn’t use Elastic App Search or Elastic Workplace Search
  • Doesn’t use indices with search- as a prefix
  • Uses the deployment default 2GB RAM Enterprise Search node
  • Uses a deployment older than 14 days

This will not result in data loss, but will prevent any scheduled syncs from running, and may impact the availability of some Kibana UI pages.

As a workaround, creating an empty index with a search- prefix, like:

PUT search-test

will prevent Elastic Cloud’s downscaling from removing the Enterprise Search node.

Even if a deployment has Enterprise Search re-added to it after downscaling, it will be downscaled again after 14 days if all of the above criteria continue to be met.

Enterprise Search service: connector clientsedit

As of 8.10.0 self-managed connector clients no longer require the Enterprise Search service to be running on your Elastic deployment. However, if you are upgrading connectors from versions earlier than 8.9, you’ll need to run Enterprise Search once to migrate your connectors to the new format.

Some points to note about this migration:

  • This involves updating system indices that store configuration and sync history for your connectors.
  • This is an in-place operation, meaning no temporary or backup indices will be created.
  • Therefore, it is important to take a snapshot of the Elasticsearch cluster before upgrading— in the unlikely event of an index migration failure.

If you have trouble with this migration, please contact support.

To run connector clients your self-deployed connector service version must match your Elasticsearch version. For example, if you’re running Elasticsearch 8.10.1, your connector service should be version 8.10.1.x. Elastic does not support deployments running mismatched versions (except during upgrades).

Connector serviceedit

The connector service has the following known issues:

  • OOM errors when syncing large database tables

    Syncs after the initial sync can cause out-of-memory (OOM) errors when syncing large database tables. This occurs because database connectors load and store IDs in memory. For tables with millions of records, this can lead to memory exhaustion if the connector service has insufficient RAM.

    To mitigate this issue, you can:

    • Increase RAM allocation:

      • Elastic Cloud: Upgrade the Enterprise Search instance to a larger size. Note that for native connectors running on Elastic Cloud, the connector service runs on the Enterprise Search node. It only has access to up to 40% of the node’s RAM allocation.
      • Self-managed: Increase RAM allocation for the machine/container running the connector service.

        RAM sizing guidelines

        The following table shows the estimated RAM usage for loading IDs into memory.

        Number of IDs

        Memory Usage in MB (2X buffer)

        1,000,000

        ≈ 45.78 MB

        10,000,000

        ≈ 457.76 MB

        50,000,000

        ≈ 2288.82 MB (≈ 2.29 GB)

        100,000,000

        ≈ 4577.64 MB (≈ 4.58 GB)

    • Optimize sync rules:

      • Review and optimize sync rules to filter and reduce data retrieved from the source before syncing.
    • Use a self-managed connector client instead of a native connector:

      • Because connector clients run on your infrastructure, they are not subject to the same RAM limitations of the Enterprise Search node.
  • Upgrades from deployments running on versions earlier than 8.9.0 can cause sync job failures

    Due to a bug, the job_type field mapping will be missing after upgrading from deployments running on versions earlier than 8.9.0. Sync jobs won’t be displayed in the Kibana UI (job history) and the connector service won’t be able to start new sync jobs. This will only occur if you have previously scheduled sync jobs.

    To resolve this issue, you can manually add the missing field with the following command and trigger a sync job:

    PUT .elastic-connectors-sync-jobs-v1/_mapping
    {
      "properties": {
        "job_type": {
          "type": "keyword"
        }
      }
    }
  • The connector service will fail to sync when the connector tries to fetch more more than 2,147,483,647 (2^31-1) documents from a data source

    A workaround is to manually partition the data to be synced using multiple search indices.

  • Custom scheduling might break when upgrading from version 8.6 or earlier.

    If you encounter the error 'custom_schedule_triggered': undefined method 'each' for nil:NilClass (NoMethodError), it means the custom scheduling feature migration failed. You can use the following manual workaround:

    POST /.elastic-connectors/_update/<connector-id>
    {
      "doc": {
        "custom_scheduling": {}
      }
    }

    This error can appear on Connectors or Crawlers that aren’t the cause of the issue. If the error continues, try running the above command for every document in the .elastic-connectors index.

  • Connectors upgrading from 8.7 or earlier can be missing configuration fields

    A connector that was created prior to 8.8 can sometimes be missing configuration fields. This is a known issue for the MySQL connector but could also affect other connectors.

    If the connector client raises the error Connector for <connector_id> has missing configuration fields: <field_a>, <field_b>..., you can resolve the error by manually adding the missing configuration fields via the Dev Tools. Only the following two field properties are required, as the rest will be autopopulated by the connector client:

    • type: one of str, int, bool, or list
    • value: any value, as long as it is of the correct type (list type values should be saved as comma-separated strings)

      POST /.elastic-connectors/_update/<connector_id>
      {
        "doc" : {
          "configuration": {
            <field_a>: {
              "type": "str",
              "value": ""
            },
            <field_b>: {
              "type": "bool",
              "value": false
            },
            <field_c>: {
              "type": "int",
              "value": 1
            },
            <field_d>: {
              "type": "list",
              "value": "a,b"
            }
          }
        }
      }
  • Python connectors that upgraded from 8.7.1 will report document volumes in gigabytes (GB) instead of megabytes (MB)

    As a result, true document volume will be under-reported by a factor of 1024.

  • The following native connectors will not run correctly on Elastic Cloud in 8.9.0. They are still available as self-managed connector clients.

Individual connector known issuesedit

Individual connectors may have additional known issues. Refer to each connector’s reference documentation for connector-specific known issues.