{"id":"565984625129de3b","repo":"jackc/pgx","slug":"invalid-length-for-circle-v","errorCode":null,"errorMessage":"invalid length for Circle: %v","messagePattern":"invalid length for Circle: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/circle.go","lineNumber":196,"sourceCode":"\n\treturn scanner.ScanCircle(Circle{\n\t\tP:     Vec2{math.Float64frombits(x), math.Float64frombits(y)},\n\t\tR:     math.Float64frombits(r),\n\t\tValid: true,\n\t})\n}\n\ntype scanPlanTextAnyToCircleScanner struct{}\n\nfunc (scanPlanTextAnyToCircleScanner) Scan(src []byte, dst any) error {\n\tscanner := (dst).(CircleScanner)\n\n\tif src == nil {\n\t\treturn scanner.ScanCircle(Circle{})\n\t}\n\n\tif len(src) < 9 {\n\t\treturn fmt.Errorf(\"invalid length for Circle: %v\", len(src))\n\t}\n\n\t// Expected format: <(x,y),r>\n\tstr, ok := strings.CutPrefix(string(src), \"<(\")\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid format for Circle\")\n\t}\n\tstr, ok = strings.CutSuffix(str, \">\")\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid format for Circle\")\n\t}\n\n\tsx, str, found := strings.Cut(str, \",\")\n\tif !found {\n\t\treturn fmt.Errorf(\"invalid format for Circle\")\n\t}\n\tsy, sr, found := strings.Cut(str, \"),\")\n\tif !found {","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/circle.go#L178-L214","documentation":"Error \"invalid length for Circle: %v\" thrown in jackc/pgx.","triggerScenarios":"Thrown at pgtype/circle.go:196 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}