> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # CallError > Structured error emitted on call.errors$. Structured error emitted on `call.errors$`. Provides actionable metadata so consumers can react without resorting to `instanceof` checks on raw `Error` objects. ## **Properties** **`callId`** `string` — required ID of the call that produced this error. --- **`error`** `Error` — required The underlying error. --- **`fatal`** `boolean` — required Whether the error terminates the call. When `true`, the call will automatically transition to `'failed'` and be destroyed — no further action is needed from the consumer. --- **`leg`** `'main' | 'screenshare' | 'additional-device'` Which peer connection failed, e.g. `'screenshare'`. Auxiliary legs are never fatal, so a consumer can surface "screen share failed, call continues". Absent for call- and session-level errors. --- **`legId`** `string` ID of the failing leg. `callId` is always the call's own ID, never the leg's — use this one to identify the leg. --- **`kind`** `CallErrorKind` — required Semantic category of the error. See [`CallErrorKind`](/docs/browser-sdk/v4/reference/type-aliases/call-error-kind). --- > Structured error emitted on call.errors$.