Budibase/budibase · error · Error
Automation with ID ${automationId} not found
Error message
Automation with ID ${automationId} not found What it means
Thrown by the `trigger` function in packages/server/src/sdk/workspace/automations/execution.ts when an automation lookup by ID fails. `context.getWorkspaceDB().get<Automation>(automationId)` returned nothing (or the row is falsy), so Budibase aborts before checking trigger types. It protects callers from proceeding with an undefined automation document.
Source
Thrown at packages/server/src/sdk/workspace/automations/execution.ts:17
import { context } from "@budibase/backend-core"
import { features } from "@budibase/pro"
import { Automation, AutomationActionStepId } from "@budibase/types"
import sdk from "../.."
import * as triggers from "../../../automations/triggers"
import env from "../../../environment"
export async function trigger(
automationId: string,
fields: Record<string, any> = {},
timeout?: number
) {
const db = context.getWorkspaceDB()
const automation = await db.get<Automation>(automationId)
if (!automation) {
throw new Error(`Automation with ID ${automationId} not found`)
}
// Check if automation has APP trigger (required for manual triggering)
const triggerType = automation.definition?.trigger?.stepId
if (triggerType !== "APP") {
throw new Error(
`Cannot manually trigger automation '${automation.name}'. Only automations with APP trigger type can be manually triggered. This automation has trigger type: ${triggerType}`
)
}
let hasCollectStep = sdk.automations.utils.checkForCollectStep(automation)
if (hasCollectStep && (await features.isSyncAutomationsEnabled())) {
const response = await triggers.externalTrigger(
automation,
{
fields,
timeout: timeout ? timeout * 1000 : env.AUTOMATION_THREAD_TIMEOUT,
},View on GitHub (pinned to a81a902e9a)
Solutions
- Verify the automation ID exists: GET /api/automations in the target workspace and match the _id
- Confirm you are calling the correct app/workspace URL and that dev vs prod deployment matches
- Re-create the automation if it was deleted, and use the new ID
- If using the SDK, ensure context.getWorkspaceDB() is bound to the workspace that owns the automation
Example fix
// before
await sdk.automations.execution.trigger("auto_abcdef")
// after
const automations = await sdk.automations.fetch()
const target = automations.find(a => a._id === "auto_abcdef")
if (!target) throw new Error(`Automation auto_abcdef not found in this workspace`)
await sdk.automations.execution.trigger(target._id!) Defensive patterns
Strategy: validation
Validate before calling
const exists = (await sdk.automations.fetch()).some(a => a._id === automationId)
if (!exists) throw new Error(`Automation ${automationId} missing`) Type guard
function isAutomation(a: Automation | undefined): a is Automation {
return !!a && typeof a._id === "string"
} Try / catch
try {
await sdk.automations.execution.trigger(id)
} catch (err: any) {
if (err.message.includes("not found")) {
// refetch automations and correct ID
} else {
throw err
}
} Prevention
- Resolve automation IDs dynamically from the API
- Confirm dev/prod environment alignment before triggering
- Log the workspace/app alongside IDs to catch cross-app usage
When it happens
Trigger: Calling the manual trigger path (e.g. POST /automations/{id}/trigger or sdk.automations.execution.trigger(id)) with an automation ID that does not exist in the workspace DB — deleted automation, typo'd ID, ID from a different app/workspace, or a prod/dev database mismatch.
Common situations: Developers copy an automation ID from a dev environment and call the API against prod; automations deleted by another user while a UI client still references them; using the internal _id from an export instead of the live document ID; passing an automation ID to the wrong app's API endpoint.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Automation not found
- Agent not found
- Escalation ${escalationId} not found
- DB does not exist
- CouchDB error: ${err.message}
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/7940eea85ee57290.
Report an issue: GitHub.