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

# Error Codes

> [!NOTE]
>
> When an error occurs in the SDK, some features may stop working, but your existing app keeps running normally. \\
>
> If you change code to fix an SDK error, you need to publish a new app build, and once it is published, prompt your users to update.

## Severity levels

| Level | Details |
| - | - |
| **ERROR** | A feature does not work. Needs immediate action. |
| **WARN** | The feature works, but action is needed. |
| **INFO** | The feature works normally; shows the operating state. |

## Initialization · Authentication

| Error code | Level | Details |
| - | - | - |
| **E1001** | ERROR | A function was called without initializing the SDK. |
| **E1002** | ERROR | The SDK key is wrong, expired or revoked. |
| **E1003** | WARN | The SDK key is valid, but positioning is turned off for this tenant: the plan does not include the user app SDK, or the subscription period is not active. |
| **E1004** | ERROR | Positioning cannot start without a linked profile. |
| **E1007** | ERROR | The SDK could not get the positioning key from the console (not registered, or the lookup failed), or the positioning engine rejected the key. `buildings()`, `floors()` and `zones()` then return empty lists, and `floor()`, `setFloorMap()` and `locators()` throw E1001. |

## Device · Permissions

| Error code | Level | Details |
| - | - | - |
| **E2001** | WARN | Unsupported OS version. |
| **E2002** | WARN | The device does not support positioning. |
| **E2003** | WARN | Positioning permission was denied. On iOS this code is also raised when `NSLocationWhenInUseUsageDescription` is missing from Info.plist. |
| **E2004** | WARN | Bluetooth is turned off. |

## Space setup

| Error code | Level | Details |
| - | - | - |
| **E3001** | WARN | A floor was set without a building. |
| **E3002** | WARN | This floor has no locators. |
| **E3003** | WARN | This floor has no positioning session. |
| **E3004** | WARN | This floor has no zones, so no events fire. |
| **E3006** | ERROR | Could not fetch locator data from the server. |
| **E3007** | WARN | No BLE signal was received, so the floor could not be found. |
| **E3008** | ERROR | The floor found by the positioning engine does not match the console. |
| **E3009** | WARN | The positioning engine's area does not match the console. |

## Positioning

| Error code | Level | Details |
| - | - | - |
| **E4001** | ERROR | The positioning session has ended or cannot be found. |
| **E4002** | ERROR | Could not obtain the user's current position. |
| **E4003** | WARN | Some registered locators are not being received. The built-in UWB engine (iOS and Android) cannot tell reception per locator, so it never raises this code; if no position comes out, E4002 is reported instead. |
| **E4004** | WARN | One zone-judgement round of the positioning engine failed. Coordinates keep coming; only that round is dropped. |

## Server communication · Upload

| Error code | Level | Details |
| - | - | - |
| **E5001** | ERROR | The network is offline. |
| **E5002** | ERROR | SDK server error. |
| **E5003** | ERROR | The request does not match the server contract (HTTP 422; 404 is also mapped here). Usually the SDK and server versions do not match. |
| **E5004** | ERROR | The resource (building or floor) is not accessible to this key (HTTP 403). |
| **E5005** | ERROR | Could not process the server response. |
| **E5006** | WARN | Coordinates that could not be uploaded were lost. |

## Activity notices

| Code | Level | Details |
| - | - | - |
| **I1001** | INFO | SDK initialization completed. |
| **I1002** | INFO | Profile linked. |
| **I3001** | INFO | Floor set. |
| **I3002** | INFO | This floor has no floor plan. Positioning data is uploaded normally. |
| **I4001** | INFO | Positioning started. |
| **I4002** | INFO | Positioning stopped. |
| **I5001** | INFO | New upload interval applied. Not shown for the default value. |

## Flutter plugin

Flutter passes the codes above through as-is in `OneS1ghtException.code`. The two codes below come only from the Flutter plugin.

| Code | Level | Details |
| - | - | - |
| **unsupportedActivity** | ERROR | The Android app's `MainActivity` is not a `FlutterFragmentActivity`, so permissions cannot be requested. |
| **internal** | ERROR | An unexpected error occurred inside the plugin. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.