{"record":{"id":"13763cdd2514a9ed","repo":"cube-js/cube","slug":"unsupported-db-type-dbtype","errorCode":null,"errorMessage":"Unsupported db type: ${dbType}","messagePattern":"Unsupported db type: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/cubejs-server-core/src/core/DriverResolvers.ts","lineNumber":27,"sourceCode":"import DriverDependencies from './DriverDependencies';\n\n/**\n * Resolve driver module name by db type.\n */\nexport const driverDependencies = (dbType: DatabaseType) => {\n  if (DriverDependencies[dbType]) {\n    return DriverDependencies[dbType];\n  }\n\n  if (packageExists(`@cubejs-backend/${dbType}-driver`, true)) {\n    return `@cubejs-backend/${dbType}-driver`;\n  }\n\n  if (packageExists(`${dbType}-cubejs-driver`, true)) {\n    return `${dbType}-cubejs-driver`;\n  }\n\n  throw new Error(`Unsupported db type: ${dbType}`);\n};\n\n/**\n * Resolve driver module object by db type.\n */\nexport const lookupDriverClass = (dbType): Constructor<BaseDriver> & {\n  dialectClass?: () => any;\n  getDefaultConcurrency?: () => number;\n} => {\n  // eslint-disable-next-line global-require,import/no-dynamic-require\n  const module = require(\n    driverDependencies(dbType || process.env.CUBEJS_DB_TYPE)\n  );\n  if (module.default) {\n    return module.default;\n  }\n  return module;\n};","sourceCodeStart":9,"sourceCodeEnd":45,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/packages/cubejs-server-core/src/core/DriverResolvers.ts#L9-L45","documentation":"driverDependencies(dbType) maps a Cube database type to the driver package name; if a dedicated built-in mapping exists it is used, otherwise it checks whether a package named `${dbType}-cubejs-driver` is installed. If neither applies, it throws 'Unsupported db type: <dbType>', meaning Cube has no known driver package for the requested type. lookupDriverClass relies on this resolution to load the driver class.","triggerScenarios":"Calling createDriver/lookupDriverClass (directly or via DevServer /playground/test-connection, where the db type comes from variables[CUBEJS_DB_TYPE]) with a type string that is neither a built-in type nor matching an installed `${dbType}-cubejs-driver` package — e.g. CUBEJS_DB_TYPE=oracle when @cubejs-backend/oracle-driver is not installed, or a mistyped value like 'postgress'.","commonSituations":"Typo in CUBEJS_DB_TYPE; using a database type supported only by a separate driver package that was never yarn-installed; community/custom drivers named incorrectly (must be <type>-cubejs-driver); upgrading Cube and the type moved to an external package.","solutions":["Check CUBEJS_DB_TYPE for typos and use a supported value (postgres, mysql, etc.)","Install the matching driver package, e.g. yarn add @cubejs-backend/<dbtype>-driver (or a package named `${dbType}-cubejs-driver` for custom drivers)","For a fully custom driver, pass a driverFactory returning a driver instance instead of relying on db-type resolution","List supported types via the Cube docs for the installed Cube version"],"exampleFix":"// before (.env)\nCUBEJS_DB_TYPE=oracledb\n// after\n# install: yarn add @cubejs-backend/oracle-driver\nCUBEJS_DB_TYPE=oracle","handlingStrategy":"validation","validationCode":"import { existsSync } from 'fs';\nfunction assertDbTypeSupported(dbType) {\n  const known = ['postgres','mysql','mssql','bigquery','duckdb','clickhouse','snowflake','databricks-jdbc','sqlite'];\n  const pkg = `${dbType}-cubejs-driver`;\n  if (!known.includes(dbType) && !packageExists(pkg)) {\n    throw new Error(`Unsupported db type: ${dbType}. Install ${pkg} or fix CUBEJS_DB_TYPE.`);\n  }\n}","typeGuard":"function isSupportedDbType(v) {\n  return typeof v === 'string' && v.length > 0 && /^[a-z0-9-]+$/.test(v);\n}","tryCatchPattern":"try {\n  const DriverClass = lookupDriverClass(process.env.CUBEJS_DB_TYPE);\n} catch (e) {\n  if (/^Unsupported db type:/.test(e.message)) {\n    console.error(`Unknown CUBEJS_DB_TYPE '${process.env.CUBEJS_DB_TYPE}'. Install the matching -cubejs-driver package.`);\n  }\n  throw e;\n}","preventionTips":["Only use db type values from the Cube docs for your installed version","Install the matching @cubejs-backend/<type>-driver package alongside setting CUBEJS_DB_TYPE","For custom drivers, name the package <type>-cubejs-driver or use driverFactory directly","Add a startup smoke test that resolves the driver class before serving traffic"],"tags":["driver","config","db-type","package-resolution"],"backgroundTag":"unsupported-database-type","analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}