Budibase/budibase · error
Datasource integration does not support verb: ${queryVerb}
Error message
Datasource integration does not support verb: ${queryVerb} What it means
Query execution looks up the handler for the query's verb on the datasource's integration class (integration[queryVerb]). Datasource integrations only implement the verbs they support (e.g. REST supports read/create/update/delete; SQL supports read/create/update/delete; some integrations lack certain verbs). If the verb function is missing, a plain Error naming the verb is thrown.
Source
Thrown at packages/server/src/threads/query.ts:228
query.rawPath = rawPath
}
if (this.includeRequest && previewSource) {
preview = await this.buildPreview(previewSource, parameters).catch(
err => {
console.warn("Failed to build request preview", err)
return undefined
}
)
}
}
// Add pagination values for REST queries
if (this.pagination) {
query.paginationValues = this.pagination
}
const fn = integration[queryVerb]
if (!fn) {
throw new Error(
`Datasource integration does not support verb: ${queryVerb}`
)
}
let output = threadUtils.formatResponse(
await fn.bind(integration)(query, {
includeRequest: this.includeRequest,
previewFields: preview?.fields,
previewConfig: preview?.config,
})
)
let rows = output as Row[],
info = undefined,
extra = undefined,
pagination = undefined
if (threadUtils.hasExtraData(output)) {
rows = output.data
info = output.infoView on GitHub (pinned to a81a902e9a)
Solutions
- Check the query's datasource source and its integration to see which verbs are implemented; re-create the query with a supported verb (read/create/update/delete)
- Open the query in the builder and fix its verb to one the datasource supports
- If importing queries, remap unsupported verbs to equivalents before execution
Example fix
// before
await sdk.queries.execute({ ...query, queryVerb: 'patch' }) // integration has no 'patch'
// after
await sdk.queries.execute({ ...query, queryVerb: 'update' }) Defensive patterns
Strategy: validation
Validate before calling
const integration = integrations[datasource.source]
if (!integration?.[query.queryVerb]) {
throw new Error(`Verb '${query.queryVerb}' not supported by ${datasource.source}`)
} Type guard
function verbSupported(integration, verb) {
return typeof integration?.[verb] === 'function'
} Try / catch
try {
await sdk.queries.execute(queryId, params)
} catch (e) {
if (e?.message?.startsWith('Datasource integration does not support verb')) {
// recreate query with a supported verb
} else throw e
} Prevention
- Check the integration's supported verbs when building queries programmatically
- Re-map verbs when importing queries between datasource types
- Keep query verbs limited to read/create/update/delete unless the integration documents more
When it happens
Trigger: Executing a query whose queryVerb (e.g. 'write', 'patch', or a verb the integration never defined) has no corresponding method on the integration resolved from the datasource source — e.g. running a query with verb 'create' against an integration that only implements read, or a verb string that doesn't match any integration method.
Common situations: Queries built or imported from other datasource types; verb renamed/changed across Budibase versions; REST queries saved with an unusual method; scripts calling the query executor directly with an arbitrary verb string.
Related errors
- GSheets integration does not support "${json.operation}".
- Cannot generate query tool bindings without a query ID
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/311948fcade01c40.
Report an issue: GitHub.