Ricardo Ibarra
06/09/2026, 5:46 AMMarvin
06/09/2026, 5:46 AMMarvin
06/09/2026, 5:49 AMimage: prefecthq/prefect-client:3-latest
For Prefect-managed compute, you should use the full Prefect image, not the minimal prefect-client image.
Recommended change:
prefecthq/prefect:3-latest
Why I think that’s the problem:
- Your run gets to “Flow run pull step was executed”
- Then it goes Pending → Crashed
- There are no flow/task logs
- That usually means the container/runtime failed before the flow engine actually started
Also, your package list includes:
"prefect>=2.0.0"
That’s another likely source of trouble in Prefect 3.x:
- it may pull in/resolve an unexpected Prefect version
- it conflicts with the Prefect version already present in the base image
- in managed compute, you generally should not reinstall Prefect itself unless you have a very specific pinned 3.x reason
What I’d change first
1. Switch image:
prefecthq/prefect:3-latest
2. Remove this from `pip_packages`:
"prefect>=2.0.0"
3. If possible, pin integrations to versions known to support Prefect 3.x, instead of very old minimums.
A cleaned-up direction would look more like:
[
"prefect-dbt",
"dbt-snowflake",
"prefect-snowflake",
"prefect-email",
"prefect-shell",
"python-dotenv",
"pandas",
"numpy",
"geopandas",
"shapely",
"snowflake-snowpark-python[pandas]",
"snowflake-connector-python[pandas]",
"google-auth",
"google-auth-oauthlib",
"google-auth-httplib2",
"google-api-python-client",
"requests",
"urllib3",
"python-dateutil"
]
I’d also consider removing clearly dev-only packages from runtime unless your flow really needs them:
- black
- pytest
- pytest-asyncio
And pathlib is unnecessary on modern Python.
How to inspect the failed run
You can check the run details with:
prefect flow-run inspect <FLOW_RUN_ID>
prefect flow-run logs <FLOW_RUN_ID>
I verified both CLI commands exist.
If the crash is infra-level, the logs may still be empty, but inspect can help confirm timing/state details.
Why this may have started “suddenly” after Friday
A few possibilities:
- 3-latest moved to a newer image
- one of your unpinned packages started resolving differently
- an integration dependency became incompatible
- managed compute pulled a fresh environment that exposed the conflict
Using latest plus broad >= constraints makes this more likely.
Most likely root cause summary
1. prefecthq/prefect-client:3-latest is the wrong base image for managed flow execution
2. prefect>=2.0.0 in pip_packages is risky/conflicting in a Prefect 3 environment
3. The crash is probably happening during startup/import time, which is why you get no flow logs
Suggested next step
Please try just these two changes first:
- change image to prefecthq/prefect:3-latest
- remove "prefect>=2.0.0" from pip packages
If you want, paste:
- your deployment config / prefect.yaml / deploy() snippet
- one crashed flow run ID
and I can help you narrow down whether there’s also a package-resolution issue in the dependency list.
Relevant docs:
- Prefect-managed execution
- Troubleshooting Prefect Cloud