{"record":{"id":"a6bc0ca1eb7f846e","repo":"twentyhq/twenty","slug":"test-workflow-is-not-supported-for-database-event","errorCode":null,"errorMessage":"Test workflow is not supported for database event triggers","messagePattern":"Test workflow is not supported for database event triggers","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getTestPayloadFromTrigger.ts","lineNumber":20,"sourceCode":"import { assertUnreachable } from 'twenty-shared/utils';\n\nexport const getTestPayloadFromTrigger = (\n  trigger: WorkflowTrigger,\n): Record<string, unknown> | undefined => {\n  switch (trigger.type) {\n    case 'MANUAL':\n    case 'CRON': {\n      return undefined;\n    }\n    case 'WEBHOOK': {\n      if (trigger.settings.httpMethod === 'POST') {\n        return trigger.settings.expectedBody;\n      }\n\n      return undefined;\n    }\n    case 'DATABASE_EVENT': {\n      throw new Error(\n        'Test workflow is not supported for database event triggers',\n      );\n    }\n    default: {\n      return assertUnreachable(trigger, 'Unknown trigger type');\n    }\n  }\n};\n","sourceCodeStart":2,"sourceCodeEnd":29,"githubUrl":"https://github.com/twentyhq/twenty/blob/1f5dd2bbd2a8da3419c8cfd52dd545c0024df1a6/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getTestPayloadFromTrigger.ts#L2-L29","documentation":"Thrown by getTestPayloadFromTrigger when a workflow's trigger type is DATABASE_EVENT. The Twenty workflow engine cannot synthesize a test payload for database event triggers (record created/updated/deleted) because such events depend on actual workspace data mutations. MANUAL and CRON return undefined (no payload needed), WEBHOOK returns its expectedBody, but DATABASE_EVENT has no meaningful static payload.","triggerScenarios":"Calling getTestPayloadFromTrigger(trigger) where trigger.type === 'DATABASE_EVENT'. This happens when a user clicks a 'Test workflow' / 'Run test' button in the workflow builder UI for a workflow whose trigger is configured as a database event.","commonSituations":"A developer builds a workflow triggered on 'company created' and tries to test-run it from the builder. The UI should hide or disable the test button for DATABASE_EVENT triggers; if it doesn't, this error surfaces.","solutions":["Hide or disable the 'Test workflow' button in the UI when the trigger type is DATABASE_EVENT.","Filter the trigger type before calling: skip getTestPayloadFromTrigger for DATABASE_EVENT triggers.","To actually test a database-event workflow, create or update a real record in the workspace that matches the trigger conditions."],"exampleFix":"// before\nconst payload = getTestPayloadFromTrigger(trigger);\nrunTestWorkflow(payload);\n\n// after\nif (trigger.type === 'DATABASE_EVENT') {\n  showToast('Database event workflows cannot be test-run. Create or update a record to trigger this workflow.');\n  return;\n}\nconst payload = getTestPayloadFromTrigger(trigger);\nrunTestWorkflow(payload);","handlingStrategy":"validation","validationCode":"const canTestTrigger = (trigger: WorkflowTrigger): boolean => {\n  return trigger.type !== 'DATABASE_EVENT';\n};\n\nif (!canTestTrigger(trigger)) {\n  showToast('Database event workflows cannot be test-run manually.');\n  return;\n}","typeGuard":"const isDatabaseEventTrigger = (\n  trigger: WorkflowTrigger,\n): trigger is WorkflowTrigger & { type: 'DATABASE_EVENT' } => {\n  return trigger.type === 'DATABASE_EVENT';\n};","tryCatchPattern":"try {\n  const payload = getTestPayloadFromTrigger(trigger);\n} catch (error) {\n  if (error instanceof Error && error.message.includes('DATABASE_EVENT')) {\n    // Disable test button for database event triggers\n    return;\n  }\n  throw error;\n}","preventionTips":["Disable or hide the 'Test workflow' button in the UI when trigger.type === 'DATABASE_EVENT'.","Filter trigger types before calling getTestPayloadFromTrigger.","Document that database event workflows must be tested by triggering real data changes."],"tags":["workflow-trigger","database-event","frontend","assertion"],"backgroundTag":null,"analyzedSha":"1f5dd2bbd2a8da3419c8cfd52dd545c0024df1a6","analyzedAt":"2026-08-12T15:37:27.593Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}