{"id":"d844055d90d8f5b7","repo":"jackc/pgx","slug":"invalid-message-length-d","errorCode":null,"errorMessage":"invalid message length: %d","messagePattern":"invalid message length: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgproto3/backend.go","lineNumber":181,"sourceCode":"\t\treturn &b.gssEncRequest, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown startup message code: %d\", code)\n\t}\n}\n\n// Receive receives a message from the frontend. The returned message is only valid until the next call to Receive.\nfunc (b *Backend) Receive() (FrontendMessage, error) {\n\tif !b.partialMsg {\n\t\theader, err := b.cr.Next(5)\n\t\tif err != nil {\n\t\t\treturn nil, translateEOFtoErrUnexpectedEOF(err)\n\t\t}\n\n\t\tb.msgType = header[0]\n\n\t\tmsgLength := int(int32(binary.BigEndian.Uint32(header[1:])))\n\t\tif msgLength < 4 {\n\t\t\treturn nil, fmt.Errorf(\"invalid message length: %d\", msgLength)\n\t\t}\n\n\t\tb.bodyLen = msgLength - 4\n\t\tif b.maxBodyLen > 0 && b.bodyLen > b.maxBodyLen {\n\t\t\treturn nil, &ExceededMaxBodyLenErr{b.maxBodyLen, b.bodyLen}\n\t\t}\n\t\tb.partialMsg = true\n\t}\n\n\tvar msg FrontendMessage\n\tswitch b.msgType {\n\tcase 'B':\n\t\tmsg = &b.bind\n\tcase 'C':\n\t\tmsg = &b._close\n\tcase 'D':\n\t\tmsg = &b.describe\n\tcase 'E':","sourceCodeStart":163,"sourceCodeEnd":199,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgproto3/backend.go#L163-L199","documentation":"Error \"invalid message length: %d\" thrown in jackc/pgx.","triggerScenarios":"Thrown at pgproto3/backend.go:181 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"ec1a0befd22592cffffdeeb0a50311b506372f4c","analyzedAt":"2026-08-04T22:52:11.263Z","schemaVersion":2}