# Validate a workflow

Validation checks whether a workflow definition is internally consistent and compatible with available handlers. Use it after structural edits, connection changes, upgrades, and restores.

## Validate in stages

1. Correct JSON syntax errors if you are using Code view.
2. Confirm every job has a unique ID and a known handler.
3. Fill required configuration fields and resolve field constraints.
4. Check every dependency and named input binding.
5. Run workflow validation.
6. Read warnings as well as blocking errors.
7. Test representative input before starting a broad real run.

A valid graph has no circular dependencies, missing referenced jobs, or impossible input bindings. Handler configuration must match its schema. The chosen trigger must be allowed by every job.

## Interpret diagnostics

Errors require correction before the workflow can be admitted or saved in the affected operation. Warnings identify risks that may require judgment, such as differing record types or recovery behavior. A warning is not proof that the run will fail, but ignoring it without understanding the affected step can lead to difficult failures later.

Port diagnostics identify the producing and consuming jobs. Insert a suitable conversion rather than changing a type label to suppress the message. Recovery diagnostics identify steps whose completed output cannot safely be reconstructed after interruption; choose supported persistence or a safer process before using them in a critical chain.

Some app-managed recipes have additional contracts. Their required jobs, prompts, schemas, and evidence rules form a reviewed process. A generally valid graph can still violate that process's requirements.

## Know the boundary

Validation does not prove that a live credential works, a remote server is available, every document matches the sample, or a model's response will be correct. It also does not perform human approval.

After a successful validation, use a [dry run](/docs/workflows/dry-runs) for inspectable sample behavior and a small real run for actual source and destination behavior. If a previously valid workflow stops validating, inspect extension availability and version changes before rewriting it. See [troubleshooting](/docs/workflows/troubleshooting).
