diff --git a/core/src/main/java/com/netflix/conductor/core/reconciliation/WorkflowSweeper.java b/core/src/main/java/com/netflix/conductor/core/reconciliation/WorkflowSweeper.java index cd4b46be75..08a7927595 100644 --- a/core/src/main/java/com/netflix/conductor/core/reconciliation/WorkflowSweeper.java +++ b/core/src/main/java/com/netflix/conductor/core/reconciliation/WorkflowSweeper.java @@ -149,9 +149,13 @@ void unack(WorkflowModel workflowModel, long workflowOffsetTimeout) { postponeDurationSeconds = taskDef.getPollTimeoutSeconds() + 1; } else { postponeDurationSeconds = - (workflowModel.getWorkflowDefinition().getTimeoutSeconds() != 0) - ? workflowModel.getWorkflowDefinition().getTimeoutSeconds() - + 1 + workflowModel.getWorkflowDefinition().getTimeoutSeconds(); + if (postponeDurationSeconds > taskModel.getResponseTimeoutSeconds()) { + postponeDurationSeconds = taskModel.getResponseTimeoutSeconds(); + } + postponeDurationSeconds = + (postponeDurationSeconds != 0) + ? postponeDurationSeconds + 1 : workflowOffsetTimeout; } } else {