> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.stereolabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.stereolabs.com/_mcp/server.

# Troubleshooting

## Fusion error code: `MODULE_NOT_ENABLED`

### Associated message

Positional tracking not enabled for the GeoTracking module. Did you call the `enablePositionalTracking` method on the `sl::Fusion` object?

### What is happening?

Global Localization functions cannot be used without enabling the module. Please enable the module before attempting to call these functions.

### Impact on my application and how to solve this?

The fusion process cannot proceed with the requested function until Global Localization is enabled. To resolve this, please ensure that you call the `enablePositionalTracking` function on the `sl::Fusion` object, providing the necessary parameters.

## Fusion error code: `INVALID_COVARIANCE`

### Associated message

You have ingested GNSS data with a very low covariance value (less than 1 millimeter). Such low covariance values appear to be too good to be true. To ensure stability, the covariance will be clamped to 1 millimeter. Please verify the covariance values of the GNSS data you have provided.

### What is happening?

The covariance value for `sl::GNSSData` ingested in the `ingestGNSSData` function is below the acceptable threshold of `1e-6`. Please ensure that the covariance value is greater than or equal to the minimum requirement. The fusion clamped the covariance to `1e-6`.

### Impact on my application and how to solve this?

This is a warning message. The fusion process will proceed with clamped covariance for `sl::GNSSData`. To prevent this warning message, please ensure that the covariance of your `sl::GNSSData` is properly checked and adjusted before ingestion.

## Fusion error code: `INVALID_TIMESTAMP`

### Associated message

Could be one of:

* You ingested GNSS data without timestamp (timestamp field set to 0). Please include a valid timestamp for your GNSS data.
* You ingested GNSS data with a timestamp far from the current timestamp (timestamp difference `<sdk-will-ingest-difference-here>` ms). This could be a unit error on the provided timestamp (milliseconds instead of microseconds). Please double-check the unit of the timestamp set in the GNSS.

### What is happening?

The fusion process involves synchronizing data from multiple ZED cameras and GNSS for accurate processing. In order to achieve this, it is necessary to group together data with closely matched timestamps. The diagram below shows sample data that needs synchronization. Each colored bar represents data that needs to be synchronized.

![](/_fern-img/9218cbe3bea49d8599331e176abf39aec372cc5c7e0e5e602f73287b0b54bf58.webp)

Then synchronization is performed by grouping data together based on the provided timestamp. Data are synchronized based on the current synchronization cursor. The figure below illustrates this:

![](/_fern-files/stereolabs.docs.buildwithfern.com/7a632db4837a02e535b62ebbc230fa678aae6cc3fed425c5714d7fbb65b873da/docs/development/zed-sdk/modules/global-localization/images/synchronization_toubleshooting_animation.gif)

The error `INVALID_TIMESTAMP` happens when your ingested data timestamp is invalid. Especially, this error happens when:

* The ingested data timestamp is equal to zero (field not set).
* The ingested data timestamp is in the past, as illustrated below:

![](/_fern-img/82fdb689ce2694cddee0eabffc9db2f1ad604044f3a4138eab471fb76b1392a9.webp)

* The ingested data timestamp is far from the current synchronization cursor, as illustrated below:

![](/_fern-img/2ccdf9aa166df0cb3e41b129078959f0bcc87de0f6a589471fbb51fdd0754978.webp)

### Impact on my application and how to solve this?

The fusion will ignore this data since it could not be synchronized. To resolve this, please check your `sl::GNSSData` timestamp before ingesting it. The current synchronization cursor timestamp can be retrieved using the `getCurrentTimeStamp` method of `sl::Fusion`.

## Fusion error code: `NO_NEW_DATA_AVAILABLE`

### Associated message

No associated messages.

### What is happening?

The fusion data synchronization consumed all data from the camera. It is waiting for new data. This usually happens when the fusion `process` method runs (subscriber) at a higher FPS than the `grab` method of the camera (publisher).

### Impact on my application and how to solve this?

This is a warning message. Most of the time nothing is wrong; your fusion process is waiting for new data from the camera. Once new data becomes available, your fusion `.process()` should return a `SUCCESS` error code. If no `SUCCESS` error code appears after several seconds, this is a synchronization problem, please refer to [synchronization documentation](/docs/development/zed-sdk/modules/global-localization/data-synchronization) for help.

## Fusion error code: `GNSS_DATA_NEED_FIX`

### Associated message

It seems that you did not fill the `gnss_status` attribute of your `GNSSData`. Please fill it to improve fusion accuracy. Please check your GNSS configuration or set `gnss_status` to `SINGLE`.

### What is happening?

The field `gnss_status` attribute of your `GNSSData` is set to `sl::GNSS_STATUS::UNKNOWN`. This could be due to a bad GNSS report, or because you did not set this field.

### Impact on my application and how to solve this?

This is a warning message. If you want more accurate geo-tracking fusion, set the `gnss_status` attribute. Otherwise, fusion will still process data, but in degraded mode. Please check your GNSS configuration or set `gnss_status` to `SINGLE`.

## Fusion error code: `GNSS_DATA_COVARIANCE_MUST_VARY`

### Associated message

You ingested GNSS data with the same covariance multiple times. Are you sure that you are filling it with the correct values? If you are confident about your ingested covariance you can ignore this message.

### What is happening?

You ingested more than fifteen `sl::GNSSData` data with the same covariance values. If you are confident about the ingested covariance there is no problem, this message is present to prevent users from ingesting fixed “hand-crafted” covariance.

### Impact on my application and how to solve this?

This is a warning message. Fusion will still process data, this message is present only to prevent you from inserting fixed “hand-crafted” covariance. This message can be deactivated by setting the `FUSION_SDK_DISABLE_GNSS_COVARIANCE_CHECK` environment variable to `1`, for example on Linux:

```bash
export FUSION_SDK_DISABLE_GNSS_COVARIANCE_CHECK=1
```

## Error code: `SENSORS_DATA_REQUIRED`

### Associated message

* Positional Tracking GEN\_2 with IMU fusion enabled requires high frequency sensors data (available with Streaming version 2, with ZED SDK >=4.1).
* Positional Tracking GEN\_2 with IMU fusion enabled requires high frequency sensors data (available with SVO version 2, with ZED SDK >=4.1).

### What is happening?

Positional tracking GEN 2 needs high-frequency IMU data when **[`enable_imu_fusion`](https://www.stereolabs.com/docs/api/structsl_1_1PositionalTrackingParameters.html#a2dffb5d6f491fa869fed2b13b178e1a9)** is activated. The provided input does not provide such information. This could be because your provided input is SVO gen 1 or streaming gen 1. You can check the version of your SVO using the ZED\_SVO\_Editor tool:

```bash
ZED_SVO_Editor --version <path_of_your_svo>
```

### Impact on my application and how to solve this?

This is a **fatal error**. Positional tracking will be deactivated. If you still want to use your data source with positional tracking gen 2, you can deactivate IMU fusion by setting **[`enable_imu_fusion`](https://www.stereolabs.com/docs/api/structsl_1_1PositionalTrackingParameters.html#a2dffb5d6f491fa869fed2b13b178e1a9)** to `false`.