{"record":{"id":"fd42708fd5b01cfd","repo":"t8y2/dbx","slug":"failed-to-parse-constraint-s-referenced-columns-fd4270","errorCode":null,"errorMessage":"failed to parse constraint %s referenced columns: %w","messagePattern":"failed to parse constraint (.+?) referenced columns: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/vastbase-go/vastbase_metadata.go","lineNumber":1589,"sourceCode":"\t\trefSchema, refTable                           sql.NullString\n\t\tmatchType, onUpdate, onDelete                 sql.NullString\n\t\tdeferrable, initiallyDeferred, valid, enabled bool\n\t}\n\traw := []rawConstraint{}\n\tfor rows.Next() {\n\t\tvar item rawConstraint\n\t\tvar columnsRaw, refColumnsRaw sql.NullString\n\t\tvar validRaw, enabledRaw any\n\t\tif err := rows.Scan(&item.name, &item.kind, &item.definition, &columnsRaw, &item.refSchema, &item.refTable, &refColumnsRaw, &item.matchType, &item.onUpdate, &item.onDelete, &item.deferrable, &item.initiallyDeferred, &validRaw, &enabledRaw); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\titem.columnNumbers, err = parseVastbaseConstraintAttributeNumbers(columnsRaw.String)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse constraint %s columns: %w\", item.name, err)\n\t\t}\n\t\titem.refColumnNumbers, err = parseVastbaseConstraintAttributeNumbers(refColumnsRaw.String)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse constraint %s referenced columns: %w\", item.name, err)\n\t\t}\n\t\titem.valid = parseVastbaseConstraintValid(validRaw)\n\t\titem.enabled = parseVastbaseConstraintEnabled(enabledRaw)\n\t\traw = append(raw, item)\n\t}\n\tif err := rows.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tattributes, err := s.relationAttributesByNumber(catalog, prefix, effective, table)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trefAttributes := map[string]map[int]string{}\n\tresult := make([]constraintInfo, 0, len(raw))\n\tfor _, item := range raw {\n\t\tconstraint := constraintInfo{\n\t\t\tName: item.name, ConstraintType: vastbaseConstraintTypeName(item.kind), Definition: item.definition,","sourceCodeStart":1571,"sourceCodeEnd":1607,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/vastbase-go/vastbase_metadata.go#L1571-L1607","documentation":"Same as the constraint-columns parse failure but for the referenced (foreign-key) column list: parseVastbaseConstraintAttributeNumbers on confkey fails, wrapped as 'failed to parse constraint %s referenced columns'. Only foreign-key constraints carry confkey data, so this surfaces during FK introspection when that text is malformed.","triggerScenarios":"Introspecting foreign key constraints when a constraint row's confkey text cannot be parsed into attribute numbers — empty string, NULL-ish rendering, or unexpected separators/characters.","commonSituations":"FK constraints against unusual server builds; driver/server catalog format mismatch; partially corrupted catalog metadata after failed migrations.","solutions":["Inspect the named constraint's confkey value in the catalog to see the malformed text.","Verify driver and server versions are compatible; update the driver for catalog format changes.","Re-check/recreate the constraint if catalog data is genuinely corrupted.","If empty confkey is legitimate for your server, patch/upgrade the driver to tolerate it."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"var confkey string\nerr := db.QueryRow(`SELECT confkey::text FROM pg_constraint WHERE conname=$1 AND contype='f'`, cname).Scan(&confkey)\nif err == nil {\n    for _, tok := range strings.FieldsFunc(confkey, func(r rune) bool { return r == ',' || r == ' ' || r == '\\t' }) {\n        if _, e := strconv.Atoi(tok); e != nil {\n            return fmt.Errorf(\"malformed confkey %q for FK %s\", confkey, cname)\n        }\n    }\n}","typeGuard":null,"tryCatchPattern":"fks, err := srv.ListForeignKeys(schema, table)\nif err != nil && strings.Contains(err.Error(), \"referenced columns\") {\n    // inspect confkey for the constraint named in the error\n    return err\n}","preventionTips":["Validate FK definitions after migrations that touch foreign keys.","Keep driver updated for catalog format changes.","Recreate constraints whose catalog values look corrupt."],"tags":["vastbase","metadata","parsing","foreign-keys"],"backgroundTag":"constraint-column-parse-failed","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}