{"record":{"id":"5989dcda9e6d405a","repo":"influxdata/influxdb","slug":"update-to-schema-would-exceed-the-field-limit-limit-for","errorCode":null,"errorMessage":"Update to schema would exceed the field limit ({limit}) for field family '{field_family}'","messagePattern":"Update to schema would exceed the field limit \\((.+?)\\) for field family '(.+?)'","errorType":"validation","errorClass":"CatalogError","httpStatus":400,"severity":"error","filePath":"influxdb3_catalog/src/error.rs","lineNumber":158,"sourceCode":"    #[error(\n        \"Schema update for table '{table_name}' would exceed the tag column limit: \\\n        proposed schema would have {attempted} tag columns, but the limit is {limit}\"\n    )]\n    TooManyTagColumns {\n        table_name: TruncatedTableName,\n        attempted: usize,\n        limit: usize,\n    },\n\n    #[error(\n        \"Update to schema would exceed number of tables limit: attempted to create table but already have {current} table(s) (limit: {limit})\"\n    )]\n    TooManyTables { current: usize, limit: usize },\n\n    #[error(\"Adding a new database would exceed limit of {0} databases\")]\n    TooManyDbs(usize),\n\n    #[error(\n        \"Update to schema would exceed the field limit ({limit}) for field family '{field_family}'\"\n    )]\n    TooManyFields { field_family: String, limit: usize },\n\n    #[error(\"Update to schema would exceed the field family limit of {0}\")]\n    TooManyFieldFamilies(usize),\n\n    #[error(\n        \"table '{table_name}' in storage mode {storage_mode:?} cannot allocate more legacy column IDs\"\n    )]\n    LegacyColumnIdsExhausted {\n        table_name: Arc<str>,\n        storage_mode: StorageMode,\n    },\n\n    #[error(\"Database not found {}\", db_name)]\n    DatabaseNotFound { db_name: Arc<str> },\n","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/error.rs#L140-L176","documentation":"Thrown when a schema update would exceed the field limit for a specific field family. InfluxDB 3 groups columns into field families; each family has a maximum number of fields, and updates pushing a family past `limit` are rejected. This bounds row width per column group.","triggerScenarios":"Adding fields to a table whose field family for those columns already holds `limit` fields — typically via line-protocol writes introducing new field keys or via ALTER/CREATE adding columns to an existing family.","commonSituations":"Wide IoT payloads with hundreds of sensor channels; exporters sending every metric as a separate field of one measurement; gradually accumulating field keys over months until the family is full.","solutions":["Split fields across a new field family (different write pattern) or a new table","Move rarely-queried fields into a compacted representation (e.g. a JSON payload field)","Drop unused fields where supported and archive historical data","Raise the field-family limit in server configuration"],"exampleFix":"// before: one measurement, 300+ fields in one family\nmachine a1=..,a2=..,...,a300=..\n// after: split into logical tables\nmachine_core rpm=..,temp=..\nmachine_vib axis_x=..,axis_y=..","handlingStrategy":"validation","validationCode":"const FIELD_FAMILY_LIMIT = 200; // instance-configured\nconst familyFields = schema.fieldFamilies[family] ?? [];\nif (familyFields.length + incomingFields.length > FIELD_FAMILY_LIMIT) {\n  throw new Error(`field family '${family}' would exceed ${FIELD_FAMILY_LIMIT} fields`);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Design fixed, bounded schemas per measurement","Group related fields into the same family deliberately; split wide payloads across tables","Version schemas and review new field additions via CI"],"tags":["schema","field-limit","catalog","time-series"],"backgroundTag":"value-out-of-range","analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}