Add execution url on Error-Workflow trigger

This commit is contained in:
Jan Oberhauser 2020-02-19 11:29:03 -06:00
parent 284a6099f2
commit 075aca9497
3 changed files with 20 additions and 1 deletions

View file

@ -37,6 +37,7 @@ The "Error Trigger" node will trigger in case the execution fails and receives i
{
"execution": {
"id": "231",
"url": "https://n8n.example.com/execution/231",
"retryOf": "34",
"error": {
"message": "Example Error Message",
@ -56,6 +57,7 @@ The "Error Trigger" node will trigger in case the execution fails and receives i
All information is always present except:
- **execution.id**: Only present when the execution gets saved in the Database
- **execution.url**: Only present when the execution gets saved in the Database
- **execution.retryOf**: Only present when the execution is a retry of a previously failed one

View file

@ -51,10 +51,17 @@ import * as config from '../config';
*/
function executeErrorWorkflow(workflowData: IWorkflowBase, fullRunData: IRun, mode: WorkflowExecuteMode, executionId?: string, retryOf?: string): void {
// Check if there was an error and if so if an errorWorkflow is set
let pastExecutionUrl: string | undefined = undefined;
if (executionId !== undefined) {
pastExecutionUrl = `${WebhookHelpers.getWebhookBaseUrl()}execution/${executionId}`;
}
if (fullRunData.data.resultData.error !== undefined && workflowData.settings !== undefined && workflowData.settings.errorWorkflow) {
const workflowErrorData = {
execution: {
id: executionId,
url: pastExecutionUrl,
error: fullRunData.data.resultData.error,
lastNodeExecuted: fullRunData.data.resultData.lastNodeExecuted!,
mode,

View file

@ -33,9 +33,19 @@ export class ErrorTrigger implements INodeType {
if (mode === 'manual' && items.length === 1 && Object.keys(items[0].json).length === 0 && items[0].binary === undefined) {
// If we are in manual mode and no input data got provided we return
// example data to allow to develope and test errorWorkflows easily
const restApiUrl = this.getRestApiUrl();
const urlParts = restApiUrl.split('/');
urlParts.pop();
urlParts.push('execution');
const id = 231;
items[0].json = {
execution: {
id: '231',
id,
url: `${urlParts.join('/')}/${id}`,
retryOf: '34',
error: {
message: 'Example Error Message',