earendil-works/pi · error · CborError

Truncated CBOR payload

Error message

Truncated CBOR payload

What it means

Error "Truncated CBOR payload" thrown in earendil-works/pi.

Source

Thrown at packages/protocol/src/cbor/decoder.ts:146

			case 26: {
				const bytes = this.readBytes(4);
				return bytes[0]! * 0x1_000_000 + bytes[1]! * 0x1_0000 + bytes[2]! * 0x100 + bytes[3]!;
			}
			case 27: {
				const high = this.readArgument(26);
				const low = this.readArgument(26);
				if (high > 0x1f_ffff) throw new CborError("Decoded CBOR integer or length is outside the safe range");
				return high * UINT32_BASE + low;
			}
			case 31:
				throw new CborError("Indefinite-length CBOR items are not supported");
			default:
				throw new CborError("Malformed CBOR additional information");
		}
	}

	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) {

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. The payload ends before the declared content. Transmit the complete buffer and check for truncation.

When it happens

Trigger: Thrown at packages/protocol/src/cbor/decoder.ts:146 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/69f8bc9d24837351. Report an issue: GitHub.