Cannot update workflow if current snapshot active on Terra becomes invalid
In summary: If a syntax error occurs in a workflow that is already in a workspace, that workflow cannot be updated nor used in that workspace anymore. Usually syntax errors would be detected before importing into a workspace, but I have accidentally found an exception...
I have a checker workflow named "B" that imports another workflow (let's call it "ld_prune") from a GitHub URL. Previously, in snapshot ten of the checker workflow (I am using Broad Methods repo as I do not like publishing in-progress repos on Dockstore) called ld_prune like this:
call workflowB.ld_pruning as prune_defaults {
input:
gds = gds
}
That's all well and good. But then I changed ld_pruning's input from gds to gds_file to match best practices for my overall pipeline. Accordingly I changed my checker workflow to this and saved it as snapshot 13:
call workflowB.ld_pruning as prune_defaults {
input:
gds_file = gds
}
The problem arises in that snapshot ten is the most recent one that I used. When I try to pull it up on Terra, I am given an error about the incorrect syntax.


The way this error is presented blocks the workflow page entirely. This means I cannot change the active snapshot to 13, which does not have any errors, and can no longer use this workflow in this workspace.
I can't get around this by just re-importing the workflow into the workspace.

One possible workaround I can think of just reuploading workflow B as a new workflow in the Broad Methods Repository, but I have concerns that this is somewhat against the design philosophy especially if this can also happen with workflows imported from Dockstore which in BDC and AnVIL is being leveraged as the way to get workflows into a workspace.
Comments
3 comments
Hey Aisling,
Thanks for flagging this up. This certainly seems suboptimal! Are you unable to get around this by exporting the working snapshot as a separate workflow with a slightly different name? I believe this error is showing because the name "B" already exists as a method in your workspace. You should be able to modify the name of the workflow as an export. This doesn't change the content of the workflow or the name of the workflow in the Broad Methods Repository. It just defines the name for how it appears in your workspace.
Kind regards,
Jason
The workaround you listed is functional, thank you!
Hi Aisling,
Glad to hear! I'll file a request with our engineers to allow you access workflows in error state so you can choose other snapshots/versions that are valid without having to export it brand new.
Kind regards,
Jason
Please sign in to leave a comment.