influxdata/influxdb · error · CatalogError
invalid node name ( )
Error message
invalid node name ({0}) What it means
CatalogError::InvalidNodeName is thrown when a node identifier supplied to a catalog node operation is not a valid node name. The offending value is included in the message, so the cause is usually characters or formatting that the catalog's node-name validation rejects.
Solutions
- Use a simple, non-empty identifier (letters, digits, hyphens) for the node ID, e.g. 'influx-node-1'.
- Trim the value and check it is non-empty before calling the API.
- If deriving from a hostname, sanitize it (replace invalid characters, drop the domain part).
Example fix
// before register_node(node_id: "Influx_Node.local") // invalid characters // after register_node(node_id: "influx-node-1")
Defensive patterns
Strategy: validation
Validate before calling
function isValidNodeName(name) {
return typeof name === "string" && /^[A-Za-z0-9][A-Za-z0-9_-]*$/.test(name);
}
if (!isValidNodeName(cfg.node_id)) throw new Error(`invalid node_id: ${cfg.node_id}`); Type guard
const isNodeName = (v) => typeof v === "string" && v.length > 0 && /^[A-Za-z0-9_-]+$/.test(v);
Try / catch
try {
await registerNode(node);
} catch (e) {
if (e.message.startsWith("invalid node name")) {
throw new Error(`fix node_id in config: ${e.message}`);
}
throw e;
} Prevention
- Sanitize hostnames before using them as node IDs.
- Fail fast on empty or templated placeholder node IDs at startup.
- Constrain node IDs to letters, digits, hyphens, underscores.
When it happens
Trigger: Calling register_node (or node lookup/management APIs) with a node_id containing whitespace, invalid characters, or an empty/oversized string.
Common situations: Deriving node IDs from hostnames that contain underscores or domains; templating mistakes leaving placeholder text or empty strings in configuration; copying a node ID with surrounding whitespace.
Understand the failure class
Background: "invalid id" errors: invalid identifier format — why libraries reject IDs before lookup, and how to fix them — this error's family across 37 libraries.
Related errors
- cannot use a column of type
- database name error
- db name cannot be empty
- db name did not start with a number or letter
- db name too long: max
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/1f8ae3cad6458e44.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_catalog/src/error.rs:124
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>,
table_name: Arc<str>,
column_name: Arc<str>,
column_type: InfluxColumnType,
},
#[error("invalid node registration")]
InvalidNodeRegistration,
#[error("invalid node name ({0})")]
InvalidNodeName(String),
#[error("invalid node spec: {0}")]
InvalidNodeSpec(#[source] anyhow::Error),
#[error(
"Schema update for table '{table_name}' would exceed the column limit: \
proposed schema update would have {attempted} columns, but the limit is {limit}"
)]
TooManyColumns {
table_name: TruncatedTableName,
attempted: usize,
limit: usize,
},
#[error(
"Schema update for table '{table_name}' would exceed the tag column limit: \
proposed schema would have {attempted} tag columns, but the limit is {limit}"View on GitHub (pinned to 06200ef96b)