IP Library Granted Patent US 9,298,539
Granted Patent B1
US 9,298,539 · App. 13/645,980 · Granted Mar 29, 2016

Automated error recovery for workflows

Inventors: Joshua David Kruck (St. Paul, MN); Shyam Prakash Velupula (Deshaipet, IN)
Assignee: Veritas US IP Holdings LLC
G06F11/0793G06F11/302
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,298,539
App. No.
13/645,980
Granted
Mar 29, 2016
Kind
B1
Abstract

Various systems and methods for automated error recovery in workflows. For example, one method involves executing operations of a first task. A workflow includes multiple tasks that include the first task. Each of the tasks represents one or more operations that are configured to access one or more elements. The method also involves detecting an error in execution of the one or more first operations, where the error indicates inaccessible elements. In response to the error detection, the method can automatically execute an error recovery portion of the first task. Execution of the error recovery portion includes receiving one or more responses, where the first task can use the response(s) instead of the one or more inaccessible elements.

Claims (125)

1. A method comprising:

executing, using one or more processors, one or more first operations of a first task,

wherein

a workflow comprises a plurality of tasks,

the plurality of tasks comprises the first task,

each task of the plurality of tasks comprises

one or more operations, and

a respective error recovery portion corresponding to the each task, and

the one or more first operations are configured to access one or more elements;

detecting an error in execution of the first task, wherein

the detecting is performed by the first task, and

the error results from a failure of a failed operation of the one or more operations;

in response to a detection of the error

generating an error indication, wherein

the generating the error indication comprises determining which operation of the one or more operations is the failed operation, and

the error indication identifies the failed operation, and

automatically executing an error recovery portion of the first task, wherein

the automatically executing the error recovery portion comprises

communicating the error indication to an input module,

prompting a user with one or more questions related to one or more inaccessible elements of the one or more elements,

determining whether a response from the input module is received within a specified amount of time,

receiving the response from the input module in response to the communicating, wherein

the response comprises information identifying a computing device,

determining, based on the response, whether to re-execute the first task, and

generating an indication of re-execution in response to the determining, and

the automatically executing the error recovery portion is performed by the first task and is configured to resolve the error independently of any workflow code external to the first task.

2. The method of claim 1 , wherein

the error indication includes information that identifies the one or more inaccessible elements.

3. The method of claim 2 , wherein

the one or more inaccessible elements are not specified by the workflow.

4. The method of claim 1 , wherein

the workflow does not indicate presence of the error recovery portion.

5. The method of claim 1 , wherein

the workflow is generated using a workflow design language as a workflow program, and

the workflow program does not comprise any elements directed to the error recovery portion.

6. The method of claim 1 , wherein

the automatically executing the error recovery portion comprises:

performing, based on the response, one or more error handlers.

7. The method of claim 1 , further comprising:

in response to automatic execution of the error recovery portion,

executing the first task using data from the execution of the error recovery portion.

8. The method of claim 1 , further comprising:

executing a messaging service, wherein

the messaging service is configured to communicate with the input module; and

executing a workflow service, wherein

the workflow service is configured to execute the workflow, and

the execution of the workflow comprises the executing of the one or more first operations.

9. The method of claim 8 , wherein

the messaging service is configured to indicate one or more characteristics related to execution of the workflow.

10. The method of claim 8 , wherein

the automatically executing the error recovery portion comprises

the workflow service communicating one or more error indications with the messaging service, wherein

the one or more error indications indicate the one or more inaccessible elements, and

the messaging service is configured to receive the response.

11. The method of claim 1 , further comprising:

concurrently executing a second task of the plurality of tasks in parallel with the first task, wherein

the first task is executing using a first thread, and

the second task is executed using a second thread.

12. A system comprising:

one or more processors;

a workflow, wherein

the workflow comprises a plurality of tasks,

the plurality of tasks comprises a first task,

each task of the plurality of tasks comprises one or more operations, and a respective error recovery portion corresponding to the each task, and

one or more first operations of the first task are configured to access one or more elements;

a workflow module, configured to be executed using the one or more processors, wherein

the workflow module is configured to

execute the workflow including the first task,

detect an error in execution of the first task,

wherein

detecting the error is performed by the first task, and

the error results from a failure of a failed operation of the one or more operations, and

in response to a detection of the error

generate an error indication, wherein

generating the error indication comprises determining which operation of the one or more operations is the failed operation, and

the error indication identifies the failed operation, and

automatically execute an error recovery portion of the first task, wherein

automatically executing the error recovery portion comprises

communicating the error indication to an input module,

prompting a user with one or more questions related to one or more inaccessible elements of the one or more elements,

determining whether a response from the input module is received within a specified amount of time,

receiving the response from the input module in response to the communicating, wherein

the response comprises information identifying a computing device,

determining, based on the response, whether to re-execute the first task, and

generating an indication of re-execution in response to the determining, and

the automatically executing the error recovery portion is performed by the first task and is configured to resolve the error independently of any workflow code external to the first task.

13. The system of claim 12 , wherein

the error indication includes information that identifies the one or more inaccessible elements.

14. The system of claim 12 , wherein

the one or more inaccessible elements of the one or more elements are not specified by the workflow.

15. The system of claim 12 , wherein

the workflow does not indicate presence of the error recovery portion.

16. The system of claim 12 , wherein

the workflow module is further configured to

perform, based on the response, one or more error handlers.

17. A computer program product comprising a plurality of instructions executable on a computer system to:

execute one or more first operations of a first task, wherein

a workflow comprises a plurality of tasks,

the plurality of tasks comprises the first task,

each task of the plurality of tasks comprises one or more operations, and a respective error recovery portion corresponding to the each task, and

the one or more first operations are configured to access one or more elements,

detect an error in execution of the first task,

wherein

detecting the error is performed by the first task, and

the error results from a failure of a failed operation of the one or more operations, and

in response to a detection of the error

generate an error indication, wherein

generating the error indication comprises determining which operation of the one or more operations is the failed operation, and

the error indication identifies the failed operation, and

automatically execute an error recovery portion of the first task, wherein automatically executing the error recovery portion comprises

communicating the error indication to an input module,

prompting a user with one or more questions related to one or more inaccessible elements of the one or more elements,

determining whether a response from the input module is received within a specified amount of time,

receiving the response from the input module in response to the communicating, wherein

the response comprises information identifying a computing device,

determining, based on the response, whether to re-execute the first task, and

generating an indication of re-execution in response to the determining, and

the automatically executing the error recovery portion is performed by the first task and is configured to resolve the error independently of any workflow code external to the first task; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the computer-readable storage medium.

18. The computer program product of claim 17 , wherein

the error indication includes information that identifies the one or more inaccessible elements.

19. The computer program product of claim 17 , wherein

the one or more inaccessible elements of the one or more elements are not specified by the workflow.

20. The computer program product of claim 17 , wherein

the workflow does not indicate presence of the error recovery portion.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075763/0001 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2012
From: KRUCK, JOSHUA DAVID; VELUPULA, SHYAM PRAKASH
To: SYMANTEC CORPORATION
Reel/Frame 029084/0747 →