{"record":{"id":"d0edcf623896479b","repo":"jackc/pgx","slug":"invalid-multirange-value-w","errorCode":null,"errorMessage":"invalid multirange value: %w","messagePattern":"invalid multirange value: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/multirange.go","lineNumber":363,"sourceCode":"\t\treturn nil, fmt.Errorf(\"invalid multirange, expected '{' got %v\", r)\n\t}\n\nparseValueLoop:\n\tfor {\n\t\tr, _, err = buf.ReadRune()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid multirange: %w\", err)\n\t\t}\n\n\t\tswitch r {\n\t\tcase ',': // skip range separator\n\t\tcase '}':\n\t\t\tbreak parseValueLoop\n\t\tdefault:\n\t\t\tbuf.UnreadRune()\n\t\t\tvalue, err := parseRange(buf)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid multirange value: %w\", err)\n\t\t\t}\n\t\t\telements = append(elements, value)\n\t\t}\n\t}\n\n\tskipWhitespace(buf)\n\n\tif buf.Len() > 0 {\n\t\treturn nil, fmt.Errorf(\"unexpected trailing data: %v\", buf.String())\n\t}\n\n\treturn elements, nil\n}\n\nfunc parseRange(buf *bytes.Buffer) (string, error) {\n\ts := &bytes.Buffer{}\n\n\tboundSepRead := false","sourceCodeStart":345,"sourceCodeEnd":381,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/multirange.go#L345-L381","documentation":"In textual multirange parsing, once the parser sees the start of an element it hands the buffer to parseRange to read one range literal. This wrapper fires when that nested range parse fails — one of the members between the braces is not a valid range text like '[1,2)'.","triggerScenarios":"Thrown at pgtype/multirange.go:363 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the wrapped error to identify which member range is malformed","Store ranges in canonical '[a,b)' / '(a,b]' / 'empty' text forms","Validate multirange strings before insertion"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ec1a0befd22592cffffdeeb0a50311b506372f4c","analyzedAt":"2026-08-04T22:52:11.263Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}