beekeeper-studio/beekeeper-studio · error
Invalid database name
Error message
Invalid database name
What it means
FirebirdClient.connect validates that a database path/name was configured and throws 'Invalid database name' when config.database is not a non-empty string. Firebird requires a database file path or alias to open a connection, so an empty value cannot proceed.
Source
Thrown at apps/studio/src-commercial/backend/lib/db/clients/firebird.ts:275
// Route through the SSH tunnel's local endpoint when a tunnel is active.
const host = this.server.sshTunnel
? this.server.config.localHost
: this.server.config.host;
const port = this.server.sshTunnel
? this.server.config.localPort
: this.server.config.port;
const config = {
host,
port,
user: this.server.config.user,
password: this.server.config.password,
database: this.database.database,
blobAsText: true,
};
if (typeof config.database !== "string" || config.database === "") {
throw new Error("Invalid database name");
}
this.firebirdOptions = config;
log.debug("create driver client for firebird with config %j", config);
this.pool = new Pool(BksConfig.db.firebird.maxConnections, config);
const versionResult = await this.driverExecuteSingle(
"SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') from rdb$database;"
);
this.version = versionResult.rows[0]["RDB$GET_CONTEXT"];
const serverConfig = this.server.config;
const knex = knexlib({
client: Client_Firebird,
connection: {
host,View on GitHub (pinned to 4e3e03e322)
Solutions
- Set the database field to a valid .FDB file path or a Firebird alias in the connection settings
- Check saved connection config for an empty/missing database key
- Verify the path exists on the server host and is reachable with the given credentials
Example fix
// before
{ client: 'firebird', host: 'localhost', database: '' }
// after
{ client: 'firebird', host: 'localhost', database: '/data/employees.fdb' } Defensive patterns
Strategy: validation
Validate before calling
if (typeof config.database !== 'string' || config.database.trim() === '') {
throw new Error('Firebird connection requires a database file path or alias');
}
await client.connect(config); Type guard
function hasFirebirdDatabase(c: { database?: unknown }): c is { database: string } {
return typeof c.database === 'string' && c.database.length > 0;
} Try / catch
try {
await client.connect(config);
} catch (err) {
if (err.message === 'Invalid database name') {
promptForDatabasePath();
} else throw err;
} Prevention
- Always set the database field to a .FDB path or alias for Firebird
- Validate connection forms before saving configs
- Check imported configs for empty database keys
When it happens
Trigger: Opening a Firebird connection with the database field empty or set to a non-string value in the connection form or saved config.
Common situations: Imported or hand-edited connection configs missing the database path; users used to server-only auth flows leaving it blank; environment-specific configs where the path placeholder was never filled.
Related errors
- Failed to retrieve default object for key path: ${defaultPat
- flags must be an array of strings
- flag ${_flag} not supported by duckdb
- Indexes require at least one column
- Indexes require a name
AI-assisted analysis of beekeeper-studio/beekeeper-studio@4e3e03e322 (2026-08-31).
Data as JSON: /api/errors/f9f48ba29090ed7d.
Report an issue: GitHub.