mitmproxy/mitmproxy · error · ValueError

not a tnetstring: absurdly large length prefix

Error message

not a tnetstring: absurdly large length prefix

What it means

Error "not a tnetstring: absurdly large length prefix" thrown in mitmproxy/mitmproxy.

Source

Thrown at mitmproxy/io/tnetstring.py:176


def load(file_handle: BinaryIO) -> TSerializable:
    """load(file) -> object

    This function reads a tnetstring from a file and parses it into a
    python object.  The file must support the read() method, and this
    function promises not to read more data than necessary.
    """
    #  Read the length prefix one char at a time.
    #  Note that the netstring spec explicitly forbids padding zeros.
    c = file_handle.read(1)
    if c == b"":  # we want to detect this special case.
        raise ValueError("not a tnetstring: empty file")
    data_length = b""
    while c.isdigit():
        data_length += c
        if len(data_length) > 12:
            raise ValueError("not a tnetstring: absurdly large length prefix")
        c = file_handle.read(1)
    if c != b":":
        raise ValueError("not a tnetstring: missing or invalid length prefix")

    data = memoryview(file_handle.read(int(data_length)))
    data_type = file_handle.read(1)[0]

    return parse(data_type, data)


def parse(data_type: int, data: memoryview) -> TSerializable:
    if data_type == ord(b","):
        return data.tobytes()
    if data_type == ord(b";"):
        return str(data, "utf8")
    if data_type == ord(b"#"):
        try:
            return int(data)

View on GitHub (pinned to 2ac5b089d9)

When it happens

Trigger: Thrown at mitmproxy/io/tnetstring.py:176 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of mitmproxy/mitmproxy@2ac5b089d9 (2026-08-26). Data as JSON: /api/errors/9d59117005bd2353. Report an issue: GitHub.