Troubleshooting · workflows
Use when
“
penumbra workflows check prints unknown_module, unknown_capability, unknown_operation, outcomes_undeclared or operation_unbound for a step.”Looking for something else?
A step that can end in a way the workflow does not handle (problem A step can end in a way the workflow does not handle). A key refused for a missing scope (card rule workflow.10).
Signs
penumbra workflows checkprints a line such asfetch.operation: unknown_operation — …orfetch.operation: outcomes_undeclared — …for the step.penumbra workflows checkprintsviews.operation: operation_unbound: list_views.and the list of operations a step can name. The step names an operation that the catalog does not list, so no door a workflow run can reach runs it.penumbra workflows catalog --step <operation>lists no step.- A publish is refused with
workflow_invalid, and the list holds the same problem.
Why it happens
The catalog holds each operation that declares the ways it can end. A workflow must route every one of them, so an operation that declares none cannot be a step. Some jobs a person does by hand have no such operation, for example reading or changing a File. The step then has nothing to name. The catalog lists only the operations a workflow run can reach. A run may call no other. A step that names any other could never run, socheck and a publish
refuse it with operation_unbound before anything starts.
What Penumbra does
By itself:- Builds the catalog from the operations this project’s modules declare, so the
list is always the list that
checkuses. - Refuses the step in
checkand in a publish, and names the step and the path. - Lets you save the draft with the problem.
- Choose a step from the catalog, or tell the person that the job cannot be written as a workflow.
- Penumbra does not suggest a nearby step.
Do
- Run
penumbra workflows catalogand look for the operation you meant. - If the catalog has a step that does the same job, name it. Check that its description says what the person wants.
- If it has none, tell the person which part of the job has no step. Ask whether to drop that part or do it by hand.
- Update the draft and check again.
Don’t
- Don’t replace the step with one that does something different to get a clean check. The workflow would run a job the person did not ask for.
- Don’t spell a module, capability or operation differently until
checkstops complaining. Copy them from the catalog.
Check
penumbra workflows check --file <workflow.json>no longer lists the step.- The person has agreed to any part of the job you left out.