Skip to main content
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 check prints a line such as fetch.operation: unknown_operation — … or fetch.operation: outcomes_undeclared — … for the step.
  • penumbra workflows check prints views.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, so check 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 check uses.
  • Refuses the step in check and in a publish, and names the step and the path.
  • Lets you save the draft with the problem.
You must:
  • Choose a step from the catalog, or tell the person that the job cannot be written as a workflow.
Not handled:
  • Penumbra does not suggest a nearby step.

Do

  1. Run penumbra workflows catalog and look for the operation you meant.
  2. If the catalog has a step that does the same job, name it. Check that its description says what the person wants.
  3. 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.
  4. 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 check stops 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.
Card workflow, with rule workflow.1. Recipe automate-a-job. Problem workflow-unhandled-outcome.

Keep going

Workflow · Write a job as a workflow · A step can end in a way the workflow does not handle