A connection is a saved record of one client joining one room. It shows when it started, how it ended, and what went wrong. Think of it as the "flight recorder" for a call.
You don't create connections. Livqeno records one every time an app joins a room. You read them afterwards, from your backend, the CLI, or the dashboard, usually when a user reports "my call didn't work".
Why it's useful
When a call fails, the user is often gone before you can look. The connection record stays behind. It shows:
- the states the client went through (connecting, connected, reconnecting…)
- the errors it reported
- the media stats its SDK sent (like packet loss and bitrate)
Example: bob says his video froze yesterday. You look up his
connections, see it went CONNECTED → RECONNECTING several times, with high
packet loss. That points to his network, not your code.
It's a record, not a live object
There's no "connection" object in the client SDK. You read connections afterwards.
On your backend (TypeScript), find failed connections and open one:
const connections = await livqeno.connections.list({ state: 'FAILED' });
const detail = await livqeno.connections.get(connections[0].id);Or in your terminal, with the CLI:
livqeno connections list
livqeno connections inspect <connectionId>States
| State | Means |
|---|---|
CONNECTING | The app is joining. |
CONNECTED | In the call. |
RECONNECTING | The network dropped; the SDK is trying to get back. |
DISCONNECTED | Left the call (on purpose or not). |
FAILED | Never got in. Check the errors on the record. |
Where the data comes from
The client SDK sends it to Livqeno's telemetry endpoint (a reporting address), using the RTC token it already has.
- Telemetry never slows down or blocks a call.
- Turn it off with
telemetry: false. - Sending is best-effort. If a tab closes mid-call, nothing more arrives. Missing data is shown as missing, not guessed.
See Telemetry & privacy.
How long it's kept
Connection and error records are deleted after 30 days by default
(OBSERVABILITY_CONNECTION_RETENTION_DAYS). Look into a problem soon after
it's reported.
Next steps
- Diagnostics: the live view of call quality, inside your app.
- Observability: watching calls across your whole app.
- Observability API: every endpoint for reading these records.