influxdata/influxdb · error · CatalogError
' ' is a reserved column
Error message
'{0}' is a reserved column What it means
CatalogError::ReservedColumn is thrown when attempting to create a table that defines a column using a name reserved by the system, such as the intrinsic 'time' column. The catalog rejects the table definition so its internal columns are never shadowed (raised from TableDefinition creation, e.g. influxdb3_catalog/src/catalog/versions/v2.rs:3301).
Solutions
- Rename the column to a non-reserved name (e.g. 'event_time') in the table definition.
- Remove the column from the definition — the intrinsic 'time' column exists automatically and need not be declared.
- If importing data, map the source's reserved-name column onto an allowed column name during ingestion.
Example fix
// before
{"table": "cpu", "columns": [{"name": "time", "type": "string"}, {"name": "host", "type": "tag"}]}
// after
{"table": "cpu", "columns": [{"name": "event_time", "type": "string"}, {"name": "host", "type": "tag"}]} Defensive patterns
Strategy: validation
Validate before calling
const RESERVED = new Set(["time"]);
function assertNoReservedColumns(columns) {
const bad = columns.filter(c => RESERVED.has(c.name.toLowerCase()));
if (bad.length) throw new Error(`reserved column names: ${bad.map(c => c.name)}`);
} Type guard
const isReserved = (name) => ["time"].includes(name.toLowerCase());
Prevention
- Never declare 'time' explicitly — it is intrinsic to every table.
- Rename columns during CSV/Parquet imports before creating tables.
- Keep a denylist of reserved names in schema-generation tooling.
When it happens
Trigger: Calling create-table (or the /api/v3/configure/table API) with a column named 'time' (or another reserved name) in its column list.
Common situations: Auto-generating schemas from CSV/Parquet headers that contain a 'time' column; porting schemas from other databases where 'time' is an ordinary identifier; ORM-generated table definitions.
Related errors
- invalid column type for column
- tried accessing column with name
- column ' ' ( ) is not defined in table ' ' of database ' '…
- column id in series key should be valid
- column type mismatch for column
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/f64eeeda0b9d0437.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_catalog/src/error.rs:97
InvalidDistinctCacheColumnType,
#[error("only uint64, int64, bool, tag, and string columns are supported in the last cache")]
InvalidLastCacheKeyColumnType,
#[error("plugin trigger is already enabled")]
TriggerAlreadyEnabled,
#[error("plugin trigger is already disabled")]
TriggerAlreadyDisabled,
#[error("invalid column type for column '{column_name}', expected {expected}, got {got}")]
InvalidColumnType {
column_name: Arc<str>,
expected: InfluxColumnType,
got: InfluxColumnType,
},
#[error("'{0}' is a reserved column")]
ReservedColumn(Arc<str>),
#[error(
"table '{table_name}' is not defined in database '{db_name}', which uses explicit schemas; \
create the table with the /api/v3/configure/table API before writing to it"
)]
UndeclaredTable {
db_name: Arc<str>,
table_name: Arc<str>,
},
#[error(
"column '{column_name}' ({column_type}) is not defined in table '{table_name}' of \
database '{db_name}', which uses explicit schemas; add the column with the \
/api/v3/configure/table API before writing to it"
)]
UndeclaredColumn {
db_name: Arc<str>,View on GitHub (pinned to 06200ef96b)