> ## 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

<Info>
  When an error occurs in the SDK, some features may stop working, but your existing app keeps running normally. <br />
  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.
</Info>

<div className="os-equal-tables">
  ## 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. |
</div>


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