Mehdi Lallouache
06/01/2026, 2:28 PMMarvin
06/01/2026, 2:28 PMMarvin
06/01/2026, 2:31 PM422 Unprocessable Entity usually means Prefect reached the API successfully, but the API rejected the contents of the request.
So this is usually not a network outage. It’s more like:
- a payload no longer matches what the API expects
- a deployment/work pool config changed
- a required field is now missing/invalid
- parameters or job variables are failing validation
Since you said everything was working until ~4pm Paris time, the most likely causes are:
- something changed in Prefect Cloud / your workspace config around that time
- a deployment or work pool was updated
- a block / variable / credential reference used by your deployment became invalid
- your code started sending a slightly different payload
Most common Prefect cause: flow run creation or deployment execution with invalid job_variables / parameters.
What I’d check first:
1. Find the exact failing endpoint
- Is it when:
- creating a flow run?
- updating a deployment?
- setting state?
- querying history?
2. Print the full response body, not just the exception headline. That usually contains the real validation error.
If you can catch the exception, do this:
from prefect.exceptions import PrefectHTTPStatusError
try:
# your Prefect call here
...
except PrefectHTTPStatusError as exc:
print("status:", exc.response.status_code)
try:
print(exc.response.json())
except Exception:
print(exc.response.text)
That often reveals something like:
- missing required field
- invalid parameter type
- schema validation failure
- bad work pool job variable
- invalid UUID/reference
A few targeted things to inspect:
- Deployment parameters changed?
- Work pool base job template changed?
- Referenced block deleted/renamed?
- Environment / variables changed around 4pm?
- Prefect version mismatch between client and server/cloud behavior?
If you’re using Prefect Cloud, also check whether all prod processes fail, or only:
- one deployment
- one work pool
- one worker type
- one code path
That helps isolate whether this is config-specific.
I couldn’t confirm GitHub issues/discussions right now because GitHub access failed on my side, but based on Prefect 3.x behavior, this is typically a validation/config problem rather than a platform-wide “hard down” problem.
If you want, send me:
- the full traceback
- the response JSON/text from the 422
- and ideally the exact Prefect call that triggers it
and I can help pinpoint the likely root cause quickly.Mehdi Lallouache
06/01/2026, 2:37 PM