This message was deleted.
# ask-marvin
s
This message was deleted.
m
thought for 488.3 seconds
Thanks for sharing the traceback — this error is a classic symptom of a version mismatch between your Prefect client and server. What’s happening - Your CLI is Prefect 2.19.7 and it’s sending a 2.x deployment payload (with fields like
infra_overrides
,
manifest_path
,
schedule
,
schedules[].catchup
,
schedules[].max_active_runs
). - Your API at http://127.0.0.1:4200 is almost certainly a Prefect 3.x server, which rejects those 2.x-only fields with “extra_forbidden”. - This exact behavior is documented here: 2.x client talking to 3.x server returns extra_forbidden (e.g., infra_overrides) How to confirm - Check the server version in the UI: open http://127.0.0.1:4200 and go to the “About” page (bottom-left). If it says 3.x, that’s the cause. - You can also run:
Copy code
prefect version
(That shows the client version; the UI is best for server.) How to fix (choose one path) 1) Stay on Prefect 2.x - Ensure your server is Prefect 2.19.x. If you’re running the server locally, reinstall/start a 2.x server the same way your client is installed. - If you use Docker, pin the image to 2.19.7, e.g.:
Copy code
docker run -p 4200:4200 <http://ghcr.io/prefecthq/prefect:2.19.7|ghcr.io/prefecthq/prefect:2.19.7> prefect server start
- After the server is 2.19.x, your existing
prefect.yaml
and
prefect deploy
command should work. 2) Upgrade to Prefect 3.x - Upgrade your client and migrate your deployment config to 3.x fields. In 3.x: - Remove 2.x-only fields:
infra_overrides
,
manifest_path
,
schedule
,
schedules[].catchup
,
schedules[].max_active_runs
- Use a work pool with
job_variables
instead of
infra_overrides
for env/infra settings - Keep
schedules
but only use supported keys (e.g.,
cron
,
timezone
) - Concurrency/catchup behavior is handled differently (e.g., work pool/queue concurrency limits; server “late runs” setting) - Docs: - 2.x Deployments: https://docs-2.prefect.io/latest/concepts/deployments/ - 3.x prefect.yaml guide: https://docs-3.prefect.io/v3/how-to-guides/deployments/prefect-yaml - 3.x REST API (create deployment): https://docs-3.prefect.io/v3/api-ref/rest-api/server/deployments/create-deployment Note about the profile warning - “Active profile 'local' set in the profiles file not found” is separate. You can resolve it by selecting an existing profile:
Copy code
prefect profiles ls
prefect profile use default
…but it’s not the cause of the 422. Would you like to stick with 2.x or move to 3.x? If you share your
prefect.yaml
, I can suggest the minimal edits for either path.