influxdata/influxdb · error · Error
The following Database Table does not exist
Error message
The following Database Table does not exist: {0} What it means
This error is the `MissingTable(String)` variant of the HTTP server's `Error` enum in influxdb3_server/src/http.rs, rendered as "The following Database Table does not exist: {0}". It is thrown when a request references a table (measurement) that does not exist in the specified database. InfluxDB 3 resolves the table from the query or write target and fails with this error when the catalog has no such table.
Solutions
- List tables in the database (`SHOW TABLES` or catalog API) and confirm the exact name
- Write an initial data point to create the table before querying it
- Fix the table/measurement name in the query or line protocol
- Verify you are querying the correct database for this table
Example fix
// before
curl -X POST 'http://localhost:8181/api/v3/query_sql' -d '{"db": "weather", "query": "SELECT * FROM tempatures"}'
// after
curl -X POST 'http://localhost:8181/api/v3/query_sql' -d '{"db": "weather", "query": "SELECT * FROM temperatures"}' // matches SHOW TABLES output Defensive patterns
Strategy: validation
Validate before calling
// before querying
const tables = await fetch('http://localhost:8181/api/v3/query_sql', {
method: 'POST',
body: JSON.stringify({ db: dbName, q: 'SHOW TABLES' })
}).then(r => r.json());
if (!tables.some(t => t.table_name === tableName)) {
throw new Error(`table ${tableName} missing in ${dbName}`);
} Type guard
function tableExists(tableName, existingTables) {
return typeof tableName === 'string' && existingTables.includes(tableName);
} Try / catch
try {
return await query(db, sql);
} catch (e) {
if (e.message.startsWith('The following Database Table does not exist')) {
// write an initial point to materialize the table, then retry
await writePoint(db, seedPoint);
return query(db, sql);
}
throw e;
} Prevention
- Write seed data before running queries against a new schema
- Keep measurement/table names in a shared constants module
- Run SHOW TABLES when porting 1.x measurements to 3.x to confirm names
- Verify which database the client targets before assuming table presence
When it happens
Trigger: Querying (SQL/InfluxQL) or writing to a table/measurement name that has not been created in the given database via the HTTP API.
Common situations: Typo in table/measurement name; querying a table that only exists in another database; version migrations where measurement names changed (1.x measurement naming vs 3.x); data not yet written so the table was never materialized.
Understand the failure class
Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.
Related errors
- The following Database does not exist
- Cannot parse the given human time
- Cannot parse the timestamp
- cannot write to soft-deleted database
- database should exist by id
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/88805d79cea61cc8.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_server/src/http.rs:376
#[error("Plugin error: {0}")]
Plugin(#[from] influxdb3_processing_engine::plugins::PluginError),
#[error("Processing engine error: {0}")]
ProcessingEngine(#[from] influxdb3_processing_engine::manager::ProcessingEngineError),
#[error(transparent)]
Influxdb3TypesHttp(#[from] influxdb3_types::http::Error),
#[error("Authorization error: {0}")]
ResourceAuthorization(#[from] ResourceAuthorizationError),
#[error("Authentication error: {0}")]
Authentication(#[from] AuthenticatorError),
#[error("The following Database does not exist: {0}")]
MissingDb(String),
#[error("The following Database Table does not exist: {0}")]
MissingTable(String),
#[error("Cannot parse the given human time: {0}")]
ParsingHumanTime(#[source] humantime::DurationError),
#[error("Cannot parse the timestamp: {0}")]
ParsingTimestamp(#[from] chrono::ParseError),
#[error("Timestamp is out of range")]
TimestampOutOfRange,
#[error("Current node mode does not use the processing engine")]
NoProcessingEngine,
#[error("invalid request: {0}")]
InvalidRequest(String),
#[error(transparent)]View on GitHub (pinned to 06200ef96b)