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

  1. Reuse existing databases with tables/tags instead of creating a new database per tenant or time period
  2. Delete/archive unused databases (DELETE DATABASE) to free capacity
  3. Raise the database limit in the server configuration
  4. 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

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


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)