Converting/deploying/retrieving Workflows and its children is broken
Summary
Converting and deploying and retrieving Workflows and child types like WorkflowFieldUpdate is broken.
I'm aware that Workflow is currently not decomposed but I think it could be easily decomposed because it contains only fully addressable child components.
The described behavior further shows that in non-decomposed form, Workflow cannot be placed in multiple package directories.
Steps To Reproduce:
The following repo contains 3 WorkflowFieldUpdate components split over multiple package directories:
force-app:Case.ChangePriorityToHigh,Case.ChangePriorityToMediumanother-package:Case.ChangePriorityToLow
Repository to reproduce: mdapi-issues/sfdx-workflow-handling
sfdx force:source:convert -m Workflow:Case -d mdapisfdx force:source:convert -m WorkflowFieldUpdate:Case.ChangePriorityToHigh -d mdapisfdx force:source:retrieve -m WorkflowFieldUpdate:Case.ChangePriorityToHigh
Expected result
- Converts all 3 components into a single
mdapi/workflows/Case.workflowmetadata file - Converts only the given WorkflowFieldUpdate to
mdapi/workflows/Case.workflowmetadata file - Retrieves the given WorkflowFieldUpdate and appends it to
force-app/main/default/workflows/Case.workflow-meta.xmlor updatesanother-package/workflows/Case.workflow-meta.xml
Actual result
- Only the workflow components of the last package directory (here:
Case.ChangePriorityToLow) are converted tomdapi/workflows/Case.workflow - All children of the first packaging directory are converted and the folder name is invalid (
workflowFieldUpdatesinstead ofworkflows):mdapi/workflowFieldUpdates/Case.workflow force-app/main/default/workflows/Case.workflow-meta.xmlis overwritten
System Information
- Which shell/terminal are you using? (e.g. bash, zsh, powershell 5, powershell 7, cmd.exe, etc.)
- -->
zsh
$ sfdx version --verbose --json
{
"cliVersion": "sfdx-cli/7.156.1",
"architecture": "darwin-arm64",
"nodeVersion": "node-v16.13.1",
"pluginVersions": [
"@oclif/plugin-autocomplete 0.3.0 (core)",
"@oclif/plugin-commands 1.3.0 (core)",
"@oclif/plugin-help 3.3.1 (core)",
"@oclif/plugin-not-found 1.2.6 (core)",
"@oclif/plugin-plugins 1.10.11 (core)",
"@oclif/plugin-update 1.5.0 (core)",
"@oclif/plugin-warn-if-update-available 1.7.3 (core)",
"@oclif/plugin-which 1.0.4 (core)",
"@salesforce/sfdx-plugin-lwc-test 0.1.7 (core)",
"alias 2.1.0 (core)",
"apex 0.13.0 (core)",
"auth 2.2.0 (core)",
"community 2.0.0 (core)",
"config 1.4.12 (core)",
"custom-metadata 2.0.0 (core)",
"data 2.0.4 (core)",
"generator 2.0.1 (core)",
"info 2.0.1 (core)",
"limits 2.0.1 (core)",
"org 1.13.2 (core)",
"salesforce-alm 54.6.0 (core)",
"schema 2.1.1 (core)",
"sfdx-cli 7.156.1 (core)",
"signups 1.2.0 (core)",
"source 2.0.2 (core)",
"telemetry 2.0.0 (core)",
"templates 55.0.0 (core)",
"trust 2.0.1 (core)",
"user 2.1.0 (core)"
],
"osVersion": "Darwin 21.5.0"
}
Additional information

Thank you for filing this issue. We appreciate your feedback and will review the issue as soon as possible. Remember, however, that GitHub isn't a mechanism for receiving support under any agreement or SLA. If you require immediate assistance, contact Salesforce Customer Support.
Thank you for filing this feature request. We appreciate your feedback and will review the feature at our next grooming or sprint planning session. We prioritize feature requests with more upvotes and comments.
This issue has been linked to a new work item: W-11385847