earendil-works/pi · error · RangeError
maxFrameLength must be an integer between 0 and ${MAX_UINT32
Error message
maxFrameLength must be an integer between 0 and ${MAX_UINT32} What it means
Error "maxFrameLength must be an integer between 0 and ${MAX_UINT32}" thrown in earendil-works/pi.
Source
Thrown at packages/protocol/src/framing.ts:22
/** Default upper bound for one framed CBOR payload. */
export const DEFAULT_MAX_FRAME_LENGTH = 16 * 1024 * 1024;
export interface FrameDecoderOptions {
maxFrameLength?: number;
}
export class FrameError extends Error {
constructor(message: string) {
super(message);
this.name = "FrameError";
}
}
function resolveMaxFrameLength(options: FrameDecoderOptions | undefined): number {
const value = options?.maxFrameLength ?? DEFAULT_MAX_FRAME_LENGTH;
if (!Number.isSafeInteger(value) || value < 0 || value > MAX_UINT32) {
throw new RangeError(`maxFrameLength must be an integer between 0 and ${MAX_UINT32}`);
}
return value;
}
/** Prefixes a payload with its unsigned 32-bit big-endian byte length. */
export function encodeFrame(payload: Uint8Array): Uint8Array {
if (!(payload instanceof Uint8Array)) throw new TypeError("Frame payload must be a Uint8Array");
if (payload.byteLength > MAX_UINT32) throw new RangeError("Frame payload exceeds the unsigned 32-bit length limit");
const frame = new Uint8Array(FRAME_HEADER_LENGTH + payload.byteLength);
const length = payload.byteLength;
frame[0] = length >>> 24;
frame[1] = length >>> 16;
frame[2] = length >>> 8;
frame[3] = length;
frame.set(payload, FRAME_HEADER_LENGTH);
return frame;
}
View on GitHub (pinned to 4af9d21d3b)
Solutions
- Set maxFrameLength to an integer between 0 and MAX_UINT32.
When it happens
Trigger: Thrown at packages/protocol/src/framing.ts:22 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/139479cf93abc1d3.
Report an issue: GitHub.