nocobase/nocobase · error

Workflow on your action failed, please contact the administr

Error message

Workflow on your action failed, please contact the administrator

What it means

When a pre-action (sync) workflow executing on an HTTP request fails internally, the RequestInterceptionTrigger aborts the request with a 500 and this user-facing message, telling the caller the workflow behind their action errored and administrator attention is required.

Source

Thrown at packages/plugins/@nocobase/plugin-workflow-request-interceptor/src/server/RequestInterceptionTrigger.ts:203

        context.logger.debug('[Workflow pre-action]: sync workflow finished successfully', {
          ...syncLogMeta,
          ...getWorkflowExecutionLogMeta(workflow, processor),
        });
        continue;
      }
      // NOTE: intercept
      if (processor.execution.status < EXECUTION_STATUS.STARTED) {
        if (lastNode?.type !== 'end') {
          context.logger.error('[Workflow pre-action]: sync workflow failed', {
            ...syncLogMeta,
            ...getWorkflowExecutionLogMeta(workflow, processor),
          });
          return context.throw(500, 'Workflow on your action failed, please contact the administrator');
        }

        context.logger.warn('[Workflow pre-action]: sync workflow intercepted request on end node', {
          ...syncLogMeta,
          ...getWorkflowExecutionLogMeta(workflow, processor),
        });
        const err = new RequestInterceptionError('Request is intercepted by workflow');
        err.status = 400;
        err.messages = context.state.messages;
        return context.throw(err.status, err);
      }
      // NOTE: should not be pending
      context.logger.error('[Workflow pre-action]: sync workflow is still pending after trigger', {
        ...syncLogMeta,
        ...getWorkflowExecutionLogMeta(workflow, processor),
      });
      return context.throw(500, 'Workflow on your action hangs, please contact the administrator');
    }

    await next();
  };

  constructor(workflow) {

View on GitHub (pinned to fa42722fef)

Solutions

  1. Check server logs for the underlying workflow execution error and its node
  2. Open the bound workflow in the workflow UI and fix the failing node configuration
  3. Test the workflow manually with sample input to reproduce the failure
  4. Roll back recent workflow changes or plugin upgrades that introduced the failure
Defensive patterns

Strategy: try-catch

Validate before calling

// before firing the action, verify the bound pre-action workflow is valid and enabled
const wf = await workflowRepo.findOne({ filter: { type: 'request-interceptor', enabled: true } });
if (!wf) throw new Error('no interceptor workflow bound');

Try / catch

try {
  await request(action, payload);
} catch (e) {
  if (e.status === 500 && /Workflow on your action failed/.test(e.message)) {
    // inspect server/workflow execution logs; surface admin guidance to user
    notifyAdmin({ workflowKey: e.workflowKey, cause: e.cause });
  }
}

Prevention

When it happens

Trigger: A bound 'pre-action' sync workflow triggered by the request throws an unexpected error during execution; the trigger's error path calls context.throw(500, 'Workflow on your action failed, please contact the administrator').

Common situations: Workflow node misconfiguration (bad variable references, invalid request bindings); database or external API failures inside workflow nodes; workflow execution timeout; NocoBase version change breaking a node handler.

Related errors


AI-assisted analysis of nocobase/nocobase@fa42722fef (2026-09-01). Data as JSON: /api/errors/ca77c8309f340824. Report an issue: GitHub.