typeorm/typeorm · error · NamedPlaceholdersNotSupportedError
Your driver does not support named placeholders.
Error message
Your driver does not support named placeholders.
What it means
Error "Your driver does not support named placeholders." thrown in typeorm/typeorm.
Source
Thrown at src/driver/cordova/CordovaQueryRunner.ts:59
async afterMigration(): Promise<void> {
await this.query(`PRAGMA foreign_keys = ON`)
}
/**
* Executes a given SQL query.
*
* @param query
* @param parameters
* @param useStructuredResult
*/
async query(
query: string,
parameters?: any[] | ObjectLiteral,
useStructuredResult = false,
): Promise<any> {
if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()
if (parameters && !Array.isArray(parameters))
throw new NamedPlaceholdersNotSupportedError()
const databaseConnection = await this.connect()
this.driver.dataSource.logger.logQuery(query, parameters, this)
await this.broadcaster.broadcast("BeforeQuery", query, parameters)
const broadcasterResult = new BroadcasterResult()
const queryStartTime = Date.now()
try {
const raw = await new Promise<any>((ok, fail) => {
databaseConnection.executeSql(
query,
parameters,
(raw: any) => ok(raw),
(err: any) => fail(err),
)
})View on GitHub (pinned to 04ff4daedc)
Solutions
- Use positional (?) placeholders instead of named parameters in raw queries for the cordova driver.
When it happens
Trigger: A raw query containing named placeholders (e.g. `:id`) is executed through the Cordova driver, which only supports positional `?` parameters.
Common situations: See trigger scenarios.
AI-assisted analysis of typeorm/typeorm@04ff4daedc (2026-08-03).
Data as JSON: /data/errors/2f9f31df8c8c19cb.json.
Report an issue: GitHub.