{"record":{"id":"ae1fd7e6fc110349","repo":"influxdata/influxdb","slug":"schema-update-for-table-table-name-would-exceed-the-column","errorCode":null,"errorMessage":"Schema update for table '{table_name}' would exceed the column limit: proposed schema update would have {attempted} columns, but the limit is {limit}","messagePattern":"Schema update for table '(.+?)' would exceed the column limit: proposed schema update would have (.+?) columns, but the limit is (.+?)","errorType":"validation","errorClass":"CatalogError","httpStatus":400,"severity":"error","filePath":"influxdb3_catalog/src/error.rs","lineNumber":130,"sourceCode":"         /api/v3/configure/table API before writing to it\"\n    )]\n    UndeclaredColumn {\n        db_name: Arc<str>,\n        table_name: Arc<str>,\n        column_name: Arc<str>,\n        column_type: InfluxColumnType,\n    },\n\n    #[error(\"invalid node registration\")]\n    InvalidNodeRegistration,\n\n    #[error(\"invalid node name ({0})\")]\n    InvalidNodeName(String),\n\n    #[error(\"invalid node spec: {0}\")]\n    InvalidNodeSpec(#[source] anyhow::Error),\n\n    #[error(\n        \"Schema update for table '{table_name}' would exceed the column limit: \\\n        proposed schema update would have {attempted} columns, but the limit is {limit}\"\n    )]\n    TooManyColumns {\n        table_name: TruncatedTableName,\n        attempted: usize,\n        limit: usize,\n    },\n\n    #[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    },","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/error.rs#L112-L148","documentation":"Thrown by influxdb3_catalog when a schema update would push a table past the maximum allowed number of columns. The catalog enforces a hard column limit per table (default 500-ish, configurable per instance), and any write or DDL that would add columns beyond that limit is rejected atomically. This prevents unbounded column growth from degrading query and write performance.","triggerScenarios":"Adding new fields (e.g. via a line-protocol write with new tag/field keys) or a DDL CREATE/ALTER that would make the table's column count exceed the configured limit. `attempted` is the resulting column count, `limit` is the max.","commonSituations":"Writers sending high-cardinality or ever-changing field sets (metrics with dynamic keys); schema drift from many producers; after a limit change, tables already near the cap; migrating data from schemaless systems like MongoDB into InfluxDB.","solutions":["Check the table's current column count and remove unused columns, or create a new table with a narrower schema","Reduce the variety of field keys in incoming writes (normalize dynamic keys into a fixed set of tags/fields)","Split the data across multiple tables or databases","Raise the column limit in the server configuration if it was set too low (note performance implications)"],"exampleFix":"// before: line protocol with arbitrary field keys per metric\nweather,location=us temp=72,humidity=60,pressure=1013,... (hundreds of keys)\n// after: fixed schema, dynamic data stored as JSON or a secondary table\nweather,location=us temp=72,humidity=60\nweather_extra,location=us payload=\"{\\\"pressure\\\":1013}\"","handlingStrategy":"validation","validationCode":"const COLUMN_LIMIT = 500; // instance-configured\nif (schema.columns.length + newColumns.length > COLUMN_LIMIT) {\n  throw new Error(`would exceed column limit (${COLUMN_LIMIT})`);\n}","typeGuard":"function withinColumnLimit(count: number, limit: number): boolean { return Number.isInteger(count) && count <= limit; }","tryCatchPattern":null,"preventionTips":["Track column count per table in monitoring and alert before the cap","Keep measurement schemas fixed and reviewed via code review/CI","Reject unknown field keys at the collector/agent layer","Periodically audit and drop unused columns"],"tags":["schema","column-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"}