API reference › @evolu/common › local‑first/Protocol › ProtocolChangeTooLargeError

Defined in: packages/common/src/local-first/Protocol.ts:578

Error for a stored change that sync skipped because it cannot fit an empty ProtocolMessage after a pending Skip range, which is the message a later round is guaranteed to reach.

Every change within maxMutationSize fits. Larger ones are changes saved before that limit existed and crafted changes a relay stores. A change up to 22 bytes too large for that message can still fit one without a pending skip, so sync may send it, sometimes after reporting it, but usually reports it in every sync like a larger one. With defaultProtocolMessageMaxSize, PADMÉ padding leaves no honest change size in that 22-byte window.

An answer to a Timestamps range neither sends nor lists a skipped change, so range fingerprints keep disagreeing about it. A request or a split still lists its timestamp, so a peer that lacks it may ask for it once per sync and gets an answer without it. Every sync narrows the fingerprints to it, skips it again, and ends.

Extends

  • Typed<"ProtocolChangeTooLargeError">

Properties

size

readonly size: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">;

Defined in: packages/common/src/local-first/Protocol.ts:581

The length of the encrypted change in bytes.


timestamp

readonly timestamp: Timestamp;

Defined in: packages/common/src/local-first/Protocol.ts:579


type

readonly type: "ProtocolChangeTooLargeError";

Defined in: packages/common/src/Type.ts:15316

Inherited from

Typed.type