earendil-works/pi · error · TypeError
CBOR input must be a Uint8Array
Error message
CBOR input must be a Uint8Array
What it means
Error "CBOR input must be a Uint8Array" thrown in earendil-works/pi.
Source
Thrown at packages/protocol/src/cbor/decoder.ts:162
private readByte(): number {
if (this.offset >= this.bytes.byteLength) throw new CborError("Truncated CBOR payload");
const value = this.bytes[this.offset]!;
this.offset++;
return value;
}
private readBytes(length: number): Uint8Array {
if (length > this.bytes.byteLength - this.offset) throw new CborError("Truncated CBOR payload");
const value = this.bytes.subarray(this.offset, this.offset + length);
this.offset += length;
return value;
}
}
/** Decodes exactly one item from the protocol's strict RFC 8949 subset. */
export function decodeCbor(bytes: Uint8Array, options?: CborOptions): unknown {
if (!(bytes instanceof Uint8Array)) throw new TypeError("CBOR input must be a Uint8Array");
const resolved = resolveOptions(options);
if (bytes.byteLength > resolved.maxByteLength) {
throw new CborError(`CBOR byte length exceeds configured limit of ${resolved.maxByteLength}`);
}
return new CborReader(bytes, resolved).decode();
}
View on GitHub (pinned to 4af9d21d3b)
Solutions
- Pass a Uint8Array to the decoder; convert strings, Buffers, or ArrayBuffers first.
When it happens
Trigger: Thrown at packages/protocol/src/cbor/decoder.ts:162 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/5350cda2d520fc20.
Report an issue: GitHub.