IWC_BAD_STATE_FORENSICS

IWC Bad State Forensics

Forensic analysis of invalid/orphaned parameters found in IWC workflow tool_state dictionaries. Each entry documents what’s wrong, why, and how it got there.

See TRACKING_INVALID_WORKFLOW_PARAMETERS.md for methodology.


1. pe-artic-variation.ga / multiqc / saveLog

FieldValue
Workflowpe-artic-variation.ga
Step25
Tool IDtoolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc
Tool version (in workflow)1.27+galaxy3
Orphan keysaveLog
Orphan value"false" (string)
CategoryTrue orphan — not in any branch of the parameter tree
Root causeplanemo-autoupdate bot

Parameter history in tool XML

Parameter history in workflow

DateIWC commitmultiqc versionsaveLog status
2021-02-223a18e6c671.8+galaxy1false (bool) — valid
2021–2024various human commits1.9→1.11+galaxy1present — valid
2025-03-178eb0a81e91.27+galaxy3"false" (string) — orphaned

What happened

  1. saveLog was a valid boolean parameter in multiqc wrappers through version 1.23.
  2. The underlying MultiQC software dropped log-saving support. Wrapper 1.24.1 removed saveLog from the XML.
  3. The IWC workflow stayed on multiqc 1.11+galaxy1 (which still had saveLog) through 2024.
  4. On 2025-03-17, planemo-autoupdate bot bumped the workflow from 1.11+galaxy1 to 1.27+galaxy3 in commit 8eb0a81e9. The bot carried saveLog forward in tool_state despite it no longer existing in the tool definition. It also changed the value type from boolean false to string "false".

Evidence

# Confirm saveLog absent from current tool XML
git -C /path/to/tools-iuc grep saveLog -- tools/multiqc/
# (no results)

# Find removal commit
git -C /path/to/tools-iuc log --oneline -S 'saveLog' -- tools/multiqc/
# 24152e242 ... remove the log option ...

# Find IWC orphaning commit
git -C /path/to/iwc log --oneline -S '1.27+galaxy3' -- workflows/**/pe-artic-variation.ga
# 8eb0a81e9 ... Automated tool update ...

2. segmentation-and-counting.ga / ip_filter_standard / radius

FieldValue
Workflowsegmentation-and-counting.ga
Step1
Tool IDtoolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard
Tool version (in workflow)1.12.0+galaxy1
Orphan keyradius
Orphan value"3" (string)
CategoryTrue orphan — renamed to size inside a new conditional structure
Root causeHuman upgrade (same person who refactored the tool)

Note: The root-level filter_type key is also orphaned but is tolerated by allow_root_level_duplicates since it exists as filter.filter_type inside the new conditional.

Parameter history in tool XML

Parameter history in workflow

DateIWC committool versionradius status
2024-02-29792383430.0.3-3"3"valid
2024-11-070f0c9ade1.12.0+galaxy1"3"orphaned

What happened

  1. Leonid Kostrykin created the IWC workflow on 2024-02-29 with tool version 0.0.3-3. At that version, radius was a valid top-level integer param.
  2. On 2024-04-04, Leonid refactored the tool itself (Refurbishment #118), replacing the flat filter_type+radius structure with a filter conditional containing per-type size params.
  3. On 2024-11-07, Leonid upgraded the workflow to 1.12.0+galaxy1. He correctly added the new conditional state ("filter": {"filter_type": "gaussian", "__current_case__": 0, "size": "3.0"}) but did not remove the old flat keys ("radius": "3" and "filter_type": "gaussian").
  4. This is not a bot bug — the same person who refactored the tool also upgraded the workflow, but Galaxy’s export preserved the old keys (the params_to_strings serialization bug).

Evidence

# Confirm radius absent from current tool XML
git -C ~/projects/repositories/galaxy-image-analysis grep radius -- tools/2d_simple_filter/
# (no results)

# Find refactoring commit
git -C ~/projects/repositories/galaxy-image-analysis log --oneline -S 'radius' -- tools/2d_simple_filter/
# c045f067 Refurbishment (#118)

# Find IWC upgrade commit
git -C ~/projects/repositories/iwc log --oneline -S '1.12.0+galaxy1' -- workflows/**/segmentation-and-counting.ga
# 0f0c9ade ...

3. segmentation-and-counting.ga / ip_threshold / dark_bg

FieldValue
Workflowsegmentation-and-counting.ga
Step3
Tool IDtoolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold
Tool version (in workflow)0.18.1+galaxy3
Orphan keysdark_bg, block_size (root-level copy)
Orphan values"true" (string), "5" (string)
CategoryTrue orphan (dark_bg renamed to invert_output); duplicate (block_size moved into th_method conditional)
Root causeHuman upgrade (same person who refactored the tool)

Note: Root-level block_size is tolerated by allow_root_level_duplicates since it exists inside th_method conditional. dark_bg is the true orphan that causes the validation failure.

Parameter history in tool XML

Parameter history in workflow

DateIWC committool versiondark_bg status
2024-02-29792383430.0.5-2"true"valid
2024-11-070f0c9ade0.18.1+galaxy3"true"orphaned

What happened

  1. Leonid Kostrykin created the IWC workflow on 2024-02-29 with tool version 0.0.5-2. At that version, dark_bg and top-level block_size were valid params.
  2. On 2024-03-11, Leonid refactored the tool (PR #109), renaming dark_bg to invert_output and restructuring th_method into a conditional with block_size nested inside.
  3. On 2024-11-07, Leonid upgraded the workflow to 0.18.1+galaxy3. Galaxy’s save/export added the new structure (invert_output, nested th_method conditional with inner block_size: "0") but did not strip the old keys (dark_bg: "true", root block_size: "5").
  4. The root-level block_size value ("5") actually diverges from the nested value ("0") — the root copy is stale from the old version.

Evidence

# Confirm dark_bg absent from current tool XML
git -C ~/projects/repositories/galaxy-image-analysis grep dark_bg -- tools/2d_auto_threshold/
# (no results)

# Find refactoring commit
git -C ~/projects/repositories/galaxy-image-analysis log --oneline -S 'dark_bg' -- tools/2d_auto_threshold/
# 8b9f24c Update Threshold image tool (#109)

# Same IWC upgrade commit as entry 2 (same workflow, same date)
git -C ~/projects/repositories/iwc log --oneline -S '0.18.1+galaxy3' -- workflows/**/segmentation-and-counting.ga
# 0f0c9ade ...