influxdata/influxdb · error · CatalogError
Adding a new database would exceed limit of
Error message
Adding a new database would exceed limit of {0} databases What it means
Thrown when adding a new database would exceed the configured limit on the total number of databases in the catalog. The error reports the maximum allowed (`{0}`); the CREATE DATABASE (or implicit DB creation via write) is rejected.
Solutions
- Reuse existing databases with tables/tags instead of creating a new database per tenant or time period
- Delete/archive unused databases (DELETE DATABASE) to free capacity
- Raise the database limit in the server configuration
- Move to a multi-node/partitioned deployment strategy for tenant isolation instead of DB-per-tenant
Example fix
// before: dynamic DB per tenant
CREATE DATABASE tenant_{id}
// after: single DB, tenant as tag
CREATE DATABASE tenants
-- write: measurement,tenant_id={id} ... Defensive patterns
Strategy: validation
Validate before calling
const DB_LIMIT = 100; // instance-configured
const dbs = await adminApi.listDatabases();
if (dbs.length >= DB_LIMIT && !dbs.includes(targetDb)) {
throw new Error(`database limit ${DB_LIMIT} reached`);
} Try / catch
try {
await catalog.createDatabase(name);
} catch (e) {
if (/exceed limit of \d+ databases/.test(String(e.message))) {
// reuse existing db or raise limit
} else throw e;
} Prevention
- Avoid database-per-tenant/time-period designs; use tables and tags
- If tenant isolation is required, plan partitioning strategy up front
- Audit and clean up stale databases periodically
When it happens
Trigger: CREATE DATABASE or writing to a not-yet-existing database name when the instance already holds the maximum number of databases.
Common situations: One-database-per-customer/tenant architectures that outgrow the limit; automated pipelines dynamically creating databases per day/tenant; misconfigured limit after migrating to a multi-tenant setup.
Understand the failure class
Background: "value must be between 0 and 1" / "out of range" / "must not be negative" errors: fixing range-validation failures across open-source libraries — this error's family across 42 libraries.
Related errors
- Update to schema would exceed number of tables limit…
- {0}
- attempted to create a resource that already exists
- attempted to modify resource that was already deleted
- auto field family exists
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/16a98a29a405ac57.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_catalog/src/error.rs:155
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}"
)]
TooManyTagColumns {
table_name: TruncatedTableName,
attempted: usize,
limit: usize,
},
#[error(
"Update to schema would exceed number of tables limit: attempted to create table but already have {current} table(s) (limit: {limit})"
)]
TooManyTables { current: usize, limit: usize },
#[error("Adding a new database would exceed limit of {0} databases")]
TooManyDbs(usize),
#[error(
"Update to schema would exceed the field limit ({limit}) for field family '{field_family}'"
)]
TooManyFields { field_family: String, limit: usize },
#[error("Update to schema would exceed the field family limit of {0}")]
TooManyFieldFamilies(usize),
#[error(
"table '{table_name}' in storage mode {storage_mode:?} cannot allocate more legacy column IDs"
)]
LegacyColumnIdsExhausted {
table_name: Arc<str>,
storage_mode: StorageMode,
},
View on GitHub (pinned to 06200ef96b)