Resubmit jobs with conversion file transfer issues and if fails second time report as File transfer Conversion Errors assigned to PMC
Context
BCMS Users frequently report that the content they process gets "stuck," which corresponds to a component getting stuck in an active status in which the user can no longer conduct any action upon it.
Dependencies
This feature extension improves the User experiences once the bug in #1545 (closed) is resolved.
This feature should be looked at the same time and in relation to other file management and processing integration tickets, particularly #1474 and #1453 and #1628
Proposal
When a converted file is not received due to file transfer (FTP or AWS S3) being down, then:
- The BCMS will try to resend the files to NCBI, OR
- The BCMS will try to pick up the files again from NCBI, AND
- If on the second time trying to send or retrieved transferred files fails, THEN
- A "File transfer error" will be reported as a "Conversion Error" in the Errors tab for the component. The user will see status: Conversion Error and details on the Error tab:
Name: File transfer error
Category: File transfer error
Severity: Error
Assignee: PMC
Message: Converted file not received due to file transfer error. Please resubmit the file.
Design
No change to current UI design required
Acceptance criteria
-
User submits job and it never is received by NCBI so hangs as Converting. BCMS will auto-resend a second time and if the second time fails send a "Conversion error" typed "File transfer error" assigned to PMC to resolve. The error message will read: "Converted file not received due to file transfer error. Please resubmit the file." -
User submits job and it is completed by NCBI but BCMS never receives it so it hangs as Converting. BCMS will try to retrieve the file a second time and if the second time fails send a "Conversion error" typed "File transfer error" assigned to PMC to resolved. The error message will read: "Converted file not received due to file transfer error. Please resubmit the file."
Definition of ready
-
BCMS User Story / Context has been well defined -
The priority of the user story is specified and agreed -
Digital assets added (design, database scheme, mockups etc if relevant) -
Coko Technical Proposal approved by NCBI -
Testable Acceptance Criteria approved by NCBI -
Estimate of effort to complete (time or points) -
The issue has been broken down into development tasks (if necessary) -
Requirements Clarified -
The product owner and development team agree that the user story is ready for development -
NCBI adds “Dev_Ready”
Definition of done
-
All coding tasks are finished and implemented -
QA approved -
Deployed and tested on “ncbidev” (by Coko team) -
Deployed and tested on “ncbi” (by NCBI team) -
Acceptance Criteria Met
Implementation
-
We need to throw an error inside
server/services/CommandService/chapterCommands/commands/ingestToPMC.js
in case there is a failure sending the file -
We should find all occurrences of
executeCommand('ingestToPMC')
and add a try catch logic to catch the error we throw previously. To all cases we should create a new error to the Errors database linked to that specific item. -
You can check an example of inserting the error here :
server/services/handleNcbiMessage/error/TaggingError.js
Alternative approaches (if applicable)
Scheduling
-
Milestone is linked -
Iteration is linked -
Dependencies: ("None" or list issue numbers if relevant) -
Development estimate is added to issue time tracking