influxdata/influxdb · error · Error

tried accessing table that do not exist

Error message

tried accessing table that do not exist

What it means

Indicates an operation tried to access a table that does not exist in the database. The write buffer's catalog lookup could not resolve the requested table name. Thrown for reads/queries or operations that require an existing table rather than implicitly creating one.

Solutions

  1. Verify the exact table name via SHOW TABLES / information_schema
  2. Write data with that measurement first so the table is created
  3. Correct the typo or outdated table name in your query/config
  4. Recreate the table by re-sending historical line protocol

Example fix

// before
SELECT * FROM 'cpu_usage'  // table does not exist yet
// after
// write some points first, or use the correct name:
SELECT * FROM 'cpu'
Defensive patterns

Strategy: validation

Validate before calling

let exists = catalog.table_exists(db_name, table_name);
if !exists {
    // write first to create the table, or fix the name
}

Type guard

fn is_table_missing(err: &WriteBufferError) -> bool {
    matches!(err, WriteBufferError::TableDoesNotExist)
}

Prevention

When it happens

Trigger: Querying or accessing a table (measurement) name that was never written to or was deleted; calling APIs that require an existing table schema without having written any data for it first.

Common situations: Typo in measurement name; querying a table before the first write creates it; environment drift where the table exists in prod but not in a fresh test instance.

Understand the failure class

Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.

Related errors


AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19). Data as JSON: /api/errors/8dcbb8de79672422. Report an issue: GitHub.

Appendix: source

Thrown at influxdb3_write/src/write_buffer/mod.rs:116

    #[error("error in last cache: {0}")]
    LastCacheError(#[from] last_cache::Error),

    #[error("database not found {db_name:?}")]
    DatabaseNotFound { db_name: String },

    #[error("table not found {table_name:?} in db {db_name:?}")]
    TableNotFound { db_name: String, table_name: String },

    #[error("tried accessing database that does not exist")]
    DbDoesNotExist,

    #[error("tried creating database named '{0}' that already exists")]
    DatabaseExists(String),

    #[error("cannot write to soft-deleted database '{0}' - it is marked for deletion")]
    DatabaseDeleted(String),

    #[error("tried accessing table that do not exist")]
    TableDoesNotExist,

    #[error("table '{db_name}.{table_name}' already exists")]
    TableAlreadyExists {
        db_name: Arc<str>,
        table_name: Arc<str>,
    },

    #[error("tried accessing column with name ({0}) that does not exist")]
    ColumnDoesNotExist(String),

    #[error(
        "updating catalog on delete of last cache failed, you will need to delete the cache \
        again on server restart"
    )]
    DeleteLastCache(#[source] CatalogError),

    #[error("error from wal: {0}")]

View on GitHub (pinned to 06200ef96b)