{"record":{"id":"049a037bbcc03338","repo":"jackc/pgx","slug":"invalid-array-expected-or-got-v","errorCode":null,"errorMessage":"invalid array, expected '[' or '=' got %v","messagePattern":"invalid array, expected '\\[' or '=' got (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/array.go","lineNumber":129,"sourceCode":"\t\treturn nil, fmt.Errorf(\"invalid array: %w\", err)\n\t}\n\n\tvar explicitDimensions []ArrayDimension\n\n\t// Array has explicit dimensions\n\tif r == '[' {\n\t\tbuf.UnreadRune()\n\n\t\tfor {\n\t\t\tr, _, err = buf.ReadRune()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid array: %w\", err)\n\t\t\t}\n\n\t\t\tif r == '=' {\n\t\t\t\tbreak\n\t\t\t} else if r != '[' {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid array, expected '[' or '=' got %v\", r)\n\t\t\t}\n\n\t\t\tlower, err := arrayParseInteger(buf)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid array: %w\", err)\n\t\t\t}\n\n\t\t\tr, _, err = buf.ReadRune()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid array: %w\", err)\n\t\t\t}\n\n\t\t\tif r != ':' {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid array, expected ':' got %v\", r)\n\t\t\t}\n\n\t\t\tupper, err := arrayParseInteger(buf)\n\t\t\tif err != nil {","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/array.go#L111-L147","documentation":"Thrown while parsing the explicit-dimension prefix of a PostgreSQL text array literal (e.g. '[1:2]={...}') in parseUntypedTextArray. After the opening '[', the parser loops expecting either another '[' starting a dimension or '=' introducing the value body; any other rune (typo, missing '=', stray space) fails here.","triggerScenarios":"Thrown at pgtype/array.go:129 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the array literal so each dimension reads '[lower:upper]' and the prefix ends with '=' before the '{' body","Drop the explicit-dimension prefix and pass the bare '{...}' literal, letting pgx infer dimensions","If the value comes from user input, validate/escape it before sending it as a text array"],"exampleFix":null,"handlingStrategy":"validation","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"}