Skip to content

Errors

DeadReferenceError

DeadReferenceError(*, reference: ReactiveLike)

Bases: RuntimeError

Raised when an operation is attempted on a dead reactive object.

A reactive object dies when it's removed from its store, e.g. when its key or the whole store is deleted. Check sync_live to know if an object is still usable.

Example:

from syncwave import DeadReferenceError, SyncModel, Syncwave

syncwave = Syncwave()


@syncwave.store(name="customers")
class Customer(SyncModel):
    name: str
    age: int


customers = syncwave["customers"]
customers.append({"name": "Alice", "age": 30})
alice = customers[0]
del customers[0]

try:
    alice.age = 31
except DeadReferenceError as e:
    print(e)


Usage Documentation

Lifecycle

Source code in src/syncwave/errors.py
49
50
51
def __init__(self, *, reference: ReactiveLike) -> None:  # ruff: ignore[undocumented-public-init]
    message = f"Operation attempted on a dead reference: {reference!r}"
    super().__init__(message)