fix(aws-healthomics): correct namespaced run parameters in WDL migration example, and CREATED workflow status - #177
Merged
nadetastic merged 1 commit intoAug 6, 2026
Conversation
…status
The WDL migration guide's S3 Input Before/After example kept the Cromwell
workflow namespace on run parameter keys, contradicting
workflow-development.md ("Workflow parameters MUST NOT be namespaced") in
the same Power. StartRun does not reliably reject namespaced keys: where the
workflow declares a default, the key can be accepted silently and the
default runs instead of the submitted value, so the run reports COMPLETED
with results that do not reflect its inputs.
troubleshooting.md directed the agent to wait for a `CREATED` workflow
status, which does not exist. CreateWorkflow returns `CREATING` and the
workflow then transitions to `ACTIVE` or `FAILED`, so note the asynchronous
transition here and in workflow-development.md Step 2. Also note that
`statusMessage` carries warnings on workflows that DO reach `ACTIVE`, such
as a missing version declaration causing draft-2 to be assumed.
Also align the two `GB` occurrences in migration-guide-for-wdl.md to the
`GiB` used by the limits statement in the same file. Resource limit values
are unchanged.
hmkim
force-pushed
the
fix/wdl-migration-run-parameters
branch
from
August 4, 2026 14:59
e4afd15 to
df22cf6
Compare
nadetastic
approved these changes
Aug 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Three factual corrections to the
aws-healthomicssteering docs:S3 Input (Before/After)example keeps the workflow namespace on run parameter keys, contradictingworkflow-development.mdin the same Power.troubleshooting.mdtells the agent to wait for a workflow status ofCREATED, which is not a HealthOmics workflow status.migration-guide-for-wdl.mdmixesGBandGiBwithin the same file.Documentation only. No changes to the Nextflow guide, the ECR pull-through cache SOP, or any resource limit values.
1. Namespaced run parameters in the migration example
Why it's wrong — the same Power says the opposite.
workflow-development.md:71-85:But
migration-guide-for-wdl.md:232-239shows this as the migrated "After" state:The Before/After changes the path to S3 but leaves the namespace in place. The file this SOP produces is a run parameters file —
migration-guide-for-wdl.md:135and:177createhealthomics.inputs.json, andrunning-a-workflow.mdpre-condition 2 verifies "aparameters.jsonorinputs.jsonexists with valid, accessible inputs."Why it matters more than a wrong example usually would —
StartRundoes not reject namespaced keys, so this does not fail loudly.Measured (2026-07,
ap-northeast-2, account IDs masked below):The workflow in that probe declares defaults for both parameters, which appears to be what makes the namespaced keys tolerable: the bare parameters are optional, so nothing is reported missing, and the unknown namespaced keys do not trip a check. The defaults run, the run reports COMPLETED, and the numbers in the output are not the numbers that were submitted.
So whether this surfaces at all depends on whether the workflow declares defaults. All-required inputs fail loudly (the bare name is missing). Inputs with defaults were accepted silently here. I've worded the steering change as conditional (
MAY be accepted silently) rather than describingStartRun's validation rule, since I only measured the one case.The audience for this file makes it worse: readers migrating from Cromwell arrive holding an inputs file where every key is namespaced, since that is Cromwell's required format. This is the one group most likely to copy the "After" block verbatim.
Change — the "After" example uses a bare key. The rule and the silent-acceptance caveat go in Phase 4 step 4 and its Done WHEN, since that is where the file is created, with a cross-reference to
workflow-development.md. I kept## Technical Patternsto a code example plus one sentence, matching the two sibling subsections.2.
CREATEDis not a workflow statustroubleshooting.md:9:Measured:
CreateWorkflowreturns HTTP 200 with statusCREATING, and the workflow then transitions toACTIVEorFAILED. There is noCREATED.The asynchronous transition is worth stating explicitly too. Re-measured today in
us-west-2with an intentionally invalid definition:An invalid definition is accepted at submission time and reported as
FAILEDonly on a laterGetWorkflow. A script that treats the 200 as success reports a broken workflow as registered.Two other probes in the same session are worth reporting, because they qualify the SOP's own premise. A definition with no
versiondeclaration registeredACTIVE, notFAILED:So
migration-guide-for-wdl.md:14's "draft-2 is NOT supported" does not mean "rejected at creation" — the service assumes draft-2 and proceeds, recording it as a warning on anACTIVEworkflow. I have not changed that line, since I don't know whether the intent is "unsupported" in the sense of unvalidated-and-unrecommended. But it is why the added note says invalid definitions surface asFAILEDrather than singling out draft-2, and why it also tells the agent to readstatusMessageonACTIVEworkflows.Change —
CREATED→ACTIVE, a sentence on the asynchronous transition, and a note to readstatusMessageeven when the status isACTIVE.workflow-development.mdStep 2 says "CallGetAHOWorkflowto verify the workflow was created successfully" without saying which status to wait for, so the polling note is added there.3.
GB/GiBmixed in one filemigration-guide-for-wdl.md:57Min 2 vCPUs / 4 GiB memory. Max 96 vCPUs / 768 GiB memory.migration-guide-for-wdl.md:68memory: "8 GiB"migration-guide-for-wdl.md:76≥2 vCPU, ≥4 GBmigration-guide-for-wdl.md:207memory: "8 GB"The two
GiBoccurrences are the ones stating the limits, so:76and:207are aligned toGiB. GB and GiB differ by 7.4%, which is enough to move a borderline task into OOM, and an example that mixes units teaches the reader to mix them.Deliberately not changed: the numeric limits themselves, and the
GB/GiBinconsistency between this file andmigration-guide-for-nextflow.md:44(Min 2 vCPUs / 4 GB).workflow-development.md:40states a third figure (at least 1 GB memory and 1 CPU), and I don't know which is authoritative — happy to file that separately if useful.Measurement conditions
The run parameter probe: 2026-07,
ap-northeast-2, two accounts (one with no pre-existing HealthOmics resources), miniwdl 1.15.0 / Python 3.12.13. The creation probes above (3334792,4737558): re-measured 2026-08-04 inus-west-2to confirm the behavior had not changed. AWS account IDs are masked as123456789012; run and workflow IDs are left as-is since they are meaningless without the account.