> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pnbr.io/llms.txt
> Use this file to discover all available pages before exploring further.

# A step names an operation this project cannot use

> A step can name only an operation the catalog lists and a workflow run can reach. Any other step is refused, and a different step must not replace it.

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](https://docs.pnbr.io/troubleshooting/workflow-unhandled-outcome.md)). 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.

## Related

Card [workflow](https://docs.pnbr.io/concepts/workflow.md), with rule [workflow.1](https://docs.pnbr.io/concepts/workflow.md#rule-workflow-1). Recipe [automate-a-job](https://docs.pnbr.io/guides/automate-a-job.md). Problem
[workflow-unhandled-outcome](https://docs.pnbr.io/troubleshooting/workflow-unhandled-outcome.md).

## Keep going

[Workflow](https://docs.pnbr.io/concepts/workflow.md) · [Write a job as a workflow](https://docs.pnbr.io/guides/automate-a-job.md) · [A step can end in a way the workflow does not handle](https://docs.pnbr.io/troubleshooting/workflow-unhandled-outcome.md)

Penumbra Grammar 0.6.26


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.