{"id":"fe5e52997888b5f6","repo":"jackc/pgx","slug":"cannot-scan-null-into-t-fe5e52","errorCode":null,"errorMessage":"cannot scan NULL into %T","messagePattern":"cannot scan NULL into %T","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/int.go","lineNumber":302,"sourceCode":"\nfunc (c Int2Codec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (any, error) {\n\tif src == nil {\n\t\treturn nil, nil\n\t}\n\n\tvar n int16\n\terr := codecScan(c, m, oid, format, src, &n)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn n, nil\n}\n\ntype scanPlanBinaryInt2ToInt8 struct{}\n\nfunc (scanPlanBinaryInt2ToInt8) Scan(src []byte, dst any) error {\n\tif src == nil {\n\t\treturn fmt.Errorf(\"cannot scan NULL into %T\", dst)\n\t}\n\n\traw, err := pgio.Uint16Exact(src)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"int2: %w\", err)\n\t}\n\n\tp, ok := (dst).(*int8)\n\tif !ok {\n\t\treturn ErrScanTargetTypeChanged\n\t}\n\n\tn := int16(raw)\n\tif n < math.MinInt8 {\n\t\treturn fmt.Errorf(\"%d is less than minimum value for int8\", n)\n\t} else if n > math.MaxInt8 {\n\t\treturn fmt.Errorf(\"%d is greater than maximum value for int8\", n)\n\t}","sourceCodeStart":284,"sourceCodeEnd":320,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/int.go#L284-L320","documentation":"Error \"cannot scan NULL into %T\" thrown in jackc/pgx.","triggerScenarios":"Thrown at pgtype/int.go:302 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}