{"record":{"id":"139479cf93abc1d3","repo":"earendil-works/pi","slug":"maxframelength-must-be-an-integer-between-0-and","errorCode":null,"errorMessage":"maxFrameLength must be an integer between 0 and ${MAX_UINT32}","messagePattern":"maxFrameLength must be an integer between 0 and (.+?)","errorType":"exception","errorClass":"RangeError","httpStatus":null,"severity":"error","filePath":"packages/protocol/src/framing.ts","lineNumber":22,"sourceCode":"\n/** Default upper bound for one framed CBOR payload. */\nexport const DEFAULT_MAX_FRAME_LENGTH = 16 * 1024 * 1024;\n\nexport interface FrameDecoderOptions {\n\tmaxFrameLength?: number;\n}\n\nexport class FrameError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"FrameError\";\n\t}\n}\n\nfunction resolveMaxFrameLength(options: FrameDecoderOptions | undefined): number {\n\tconst value = options?.maxFrameLength ?? DEFAULT_MAX_FRAME_LENGTH;\n\tif (!Number.isSafeInteger(value) || value < 0 || value > MAX_UINT32) {\n\t\tthrow new RangeError(`maxFrameLength must be an integer between 0 and ${MAX_UINT32}`);\n\t}\n\treturn value;\n}\n\n/** Prefixes a payload with its unsigned 32-bit big-endian byte length. */\nexport function encodeFrame(payload: Uint8Array): Uint8Array {\n\tif (!(payload instanceof Uint8Array)) throw new TypeError(\"Frame payload must be a Uint8Array\");\n\tif (payload.byteLength > MAX_UINT32) throw new RangeError(\"Frame payload exceeds the unsigned 32-bit length limit\");\n\tconst frame = new Uint8Array(FRAME_HEADER_LENGTH + payload.byteLength);\n\tconst length = payload.byteLength;\n\tframe[0] = length >>> 24;\n\tframe[1] = length >>> 16;\n\tframe[2] = length >>> 8;\n\tframe[3] = length;\n\tframe.set(payload, FRAME_HEADER_LENGTH);\n\treturn frame;\n}\n","sourceCodeStart":4,"sourceCodeEnd":40,"githubUrl":"https://github.com/earendil-works/pi/blob/4af9d21d3b4d664e4a29fcabfec85171077248e3/packages/protocol/src/framing.ts#L4-L40","documentation":"Error \"maxFrameLength must be an integer between 0 and ${MAX_UINT32}\" thrown in earendil-works/pi.","triggerScenarios":"Thrown at packages/protocol/src/framing.ts:22 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set maxFrameLength to an integer between 0 and MAX_UINT32."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4af9d21d3b4d664e4a29fcabfec85171077248e3","analyzedAt":"2026-08-24T13:07:14.692Z","schemaVersion":2},"datasetVersion":"2026-08-24T17:17:21.512Z"}