{"id":"bb0b5b0b61f12c6e","repo":"jackc/pgx","slug":"invalid-message-length-d-bb0b5b","errorCode":null,"errorMessage":"invalid message length: %d","messagePattern":"invalid message length: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgproto3/frontend.go","lineNumber":322,"sourceCode":"\tif err == io.EOF {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn err\n}\n\n// Receive receives a message from the backend. The returned message is only valid until the next call to Receive.\nfunc (f *Frontend) Receive() (BackendMessage, error) {\n\tif !f.partialMsg {\n\t\theader, err := f.cr.Next(5)\n\t\tif err != nil {\n\t\t\treturn nil, translateEOFtoErrUnexpectedEOF(err)\n\t\t}\n\n\t\tf.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\tf.bodyLen = msgLength - 4\n\t\tif f.maxBodyLen > 0 && f.bodyLen > f.maxBodyLen {\n\t\t\treturn nil, &ExceededMaxBodyLenErr{f.maxBodyLen, f.bodyLen}\n\t\t}\n\t\tf.partialMsg = true\n\t}\n\n\tmsgBody, err := f.cr.Next(f.bodyLen)\n\tif err != nil {\n\t\treturn nil, translateEOFtoErrUnexpectedEOF(err)\n\t}\n\n\tf.partialMsg = false\n\n\tvar msg BackendMessage\n\tswitch f.msgType {","sourceCodeStart":304,"sourceCodeEnd":340,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgproto3/frontend.go#L304-L340","documentation":"Error \"invalid message length: %d\" thrown in jackc/pgx.","triggerScenarios":"Thrown at pgproto3/frontend.go:322 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}