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

# Versions and releases

> What a version number tells you, which element_sdk versions a product accepts, and what the console says when they do not match.

Every product and `element_sdk` is published as numbered releases. This page explains the numbers,
how a product says which `element_sdk` it works with, and every message you see when the two do not
match.

## Reading a version number

A version has three parts, for example `1.4.2`:

| Part | Goes up when | For you |
| - | - | - |
| First (`1`) | Something changed in a way older setups may not survive. | Read the patch notes first. A setting may have been renamed or removed. |
| Second (`4`) | Something was added. | Your setup keeps working. New settings may be available. |
| Third (`2`) | Something was fixed. | Update freely. |

Below `1.0.0`, the second part plays the role of the first: treat a change from `0.1` to `0.2` as one
that may need action.

A version with a suffix, such as `1.1.0-beta.1`, is a **pre-release**. A pre-release is older than
the same version without the suffix: `1.1.0-beta.1` comes before `1.1.0`.

Where to find a version: the `version` line in the resource's `fxmanifest.lua`.

## Stable and test releases

| Channel | Holds |
| - | - |
| Stable | Releases for production servers. |
| Candidate | Pre-releases, published for testing before they become stable. |

At every start your server compares each installed Element Labs resource with the releases on the
channel that matches it: a pre-release is compared with candidates, a normal release with stable
ones. You can change that, or silence the notice, with `el:versionChannel`. See
[Server settings](https://docs.elementlabs.net/configure/server-settings.md#release-channels).

## Which element\_sdk a product accepts

A product accepts a range of `element_sdk` versions, not one exact version, so an `element_sdk`
update inside that range needs nothing else from you. The range is in the release's
`INSTALL.md`, and in the product's `fxmanifest.lua`:

```lua theme={null}
dependency_version "element_sdk:^0.1.0"
```

| Range | Accepts |
| - | - |
| `^1.2.0` | `1.2.0` and every later `1.x` version. Below `1.0.0` it is narrower: `^0.1.0` accepts `0.1.x` only. |
| `~1.2.0` | `1.2.0` and every later `1.2.x` version. |
| `>=1.2.0` | `1.2.0` and every later version. |
| `>1.2.0` | Every version after `1.2.0`. |
| `<=1.2.0`, `<1.2.0` | `1.2.0` and earlier, or only earlier. |
| `=1.2.0` | Exactly `1.2.0`. |

So `^0.1.0` accepts `0.1.0` and every `0.1.x` after it, and nothing from `0.2.0` on.

When you update, update `element_sdk` first. A newer `element_sdk` inside every product's range keeps
all of them working; a newer product may need a newer `element_sdk`.

## When the versions do not match

The product checks `element_sdk` when it starts. If the check fails, it prints the reason, then one
line naming itself, and stops a moment after starting:

```text theme={null}
Started resource element_3d_pausemenu
[ERROR] [Dependencies] 'element_sdk' v0.0.9 does not satisfy required version ^0.1.0.
[ERROR] [       Sdk] Resource dependencies are not satisfied for 'element_3d_pausemenu'.
Stopping resource element_3d_pausemenu
```

The product stops rather than running on an `element_sdk` it was not built for, which would fail
later in ways that are much harder to trace. Always act on the first line.

| Message | Cause | Fix |
| - | - | - |
| `'element_sdk' v<installed> does not satisfy required version <range>.` | Your `element_sdk` is outside the range. | Download the `element_sdk` version the release's `INSTALL.md` names, replace the folder, restart. |
| `Dependency 'element_sdk' is not started (state '<state>', requires <range>).` | `element_sdk` is installed but not running: it failed to start, or was stopped by hand. | Look higher in the console for why `element_sdk` failed, or start it. |
| `Missing dependency 'element_sdk' (requires <range>).` | The server does not know `element_sdk`. Usually the server itself reports this first and refuses to start the product. | Install `element_sdk`. See [Install a product](https://docs.elementlabs.net/get-started/install.md). |
| `Declared requirement '<range>' for 'element_sdk' is not a readable version constraint.` | The product's `fxmanifest.lua` was edited, or the product was copied incompletely. | Reinstall the product from the release. |
| `Cannot determine version of 'element_sdk' (requires <range>).` | A warning: the `version` line of `element_sdk` is missing or unreadable, usually an incomplete copy. The product keeps starting. | Reinstall `element_sdk`. |

All lines but the last start with `[ERROR] [Dependencies]`; the last with `[WARN ] [Dependencies]`.

The check can be turned off with `el:dependencyCheck` to confirm a diagnosis. See
[Server settings](https://docs.elementlabs.net/configure/server-settings.md#dependency-check).


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