You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
project: pull crashes with 'step not found' when two workflow names slugify to the same id #1602
parse/from-app-state.ts sets mapped.id = slugify(workflow.name) and does not check for duplicate ids.
serialize/to-fs.ts loops over project.workflows but calls extractStep(project, wf.id, s.id). That function looks the workflow up again with project.getWorkflow(id), which returns the first match. While processing the second workflow it searches the first one's steps, and common isn't there.
If the step ids happen to overlap, nothing throws, but the workflows overwrite each other's files. Here webhook, http and transform-data were written from the wrong workflow with no error, and both workflow files share the same path.
Repro
Create two workflows in Lightning named Foo and Foo! (or foo), give the second one a step the first doesn't have, then run openfn project pull.
Suggested fix
Make workflow ids unique when they collide in from-app-state.ts, for example by adding a -2 suffix, or fail with an error that names both workflows. Passing wf directly into extractStep/extractWorkflow would stop the crash, but the workflows would still overwrite each other's files.
Workaround
Rename one of the colliding workflows in Lightning.
Related: #1603 is the same problem at the step level. Step names with no ASCII characters slugify to "" and collide. A shared fix (keep Unicode in slugify and catch duplicate ids for both workflows and steps) would cover both issues.
Activity
midigofrank commentedon Oct 29, 2026
Related: #1603 is the same problem at the step level. Step names with no ASCII characters slugify to
""and collide. A shared fix (keep Unicode inslugifyand catch duplicate ids for both workflows and steps) would cover both issues.