drizzle-team/drizzle-orm · error · Error
Cannot execute a query on a query builder. Please use a data
Error message
Cannot execute a query on a query builder. Please use a database instance instead.
What it means
Error "Cannot execute a query on a query builder. Please use a database instance instead." thrown in drizzle-team/drizzle-orm.
Source
Thrown at drizzle-orm/src/gel-core/query-builders/select.ts:1066
TSelectedFields = BuildSubquerySelection<TSelection, TNullabilityMap>,
> extends GelSelectQueryBuilderBase<
GelSelectHKT,
TTableName,
TSelection,
TSelectMode,
TNullabilityMap,
TDynamic,
TExcludedMethods,
TResult,
TSelectedFields
> implements RunnableQuery<TResult, 'gel'>, SQLWrapper {
static override readonly [entityKind]: string = 'GelSelect';
/** @internal */
_prepare(name?: string): GelSelectPrepare<this> {
const { session, config, dialect, joinsNotNullableMap, cacheConfig, usedTables } = this;
if (!session) {
throw new Error('Cannot execute a query on a query builder. Please use a database instance instead.');
}
return tracer.startActiveSpan('drizzle.prepareQuery', () => {
const fieldsList = orderSelectedFields<GelColumn>(config.fields);
const query = session.prepareQuery<
PreparedQueryConfig & { execute: TResult }
>(dialect.sqlToQuery(this.getSQL()), fieldsList, name, true, undefined, {
type: 'select',
tables: [...usedTables],
}, cacheConfig);
query.joinsNotNullableMap = joinsNotNullableMap;
return query;
});
}
$withCache(config?: { config?: CacheConfig; tag?: string; autoInvalidate?: boolean } | false) {
this.cacheConfig = config === undefined
? { config: {}, enable: true, autoInvalidate: true }View on GitHub (pinned to b7862528fd)
Solutions
- Run the query through the database instance (db.execute(...) or await db.select()...) instead of calling execute/run on the query builder itself.
When it happens
Trigger: Awaiting/executing a Gel query builder (or passing it where a db is required) instead of executing through a database instance.
Common situations: Calling .execute() on a nested subquery builder; passing a select builder into a function expecting db.
AI-assisted analysis of drizzle-team/drizzle-orm@b7862528fd (2026-08-03).
Data as JSON: /data/errors/d6052532f9967078.json.
Report an issue: GitHub.