Area: Ingestion Issues
Sub-Area: Remote Executor / Virtual Environment Setup
Issue
All system ingestion jobs fail immediately during the virtual environment setup phase, before any source-specific ingestion logic runs. The remote executor attempts to download and install a specific version of the acryl-datahub CLI wheel to create an isolated Python environment for the ingestion subprocess. When the requested wheel version is unavailable on the configured package index — whether due to a version mismatch in the server-side configuration, a release coordination gap, or the package index being unreachable — every ingestion job on that executor instance hard-fails with no fallback behavior. Because the defaultCliVersion is resolved server-side and applied globally, no individual ingestion source configuration can work around this failure.
Error Messages
RuntimeError: Failed to download acryl-datahub wheel for version '<version>'acryl.executor.execution.task.TaskError: Failed to set up virtual environment: Failed to download acryl-datahub wheel for version '<version>'
You Might Be Asking
- Why are all of my ingestion sources failing at the same time with a venv setup error?
- Why does the executor fail before any ingestion logic even starts?
- What does "Failed to download acryl-datahub wheel" mean and how do I fix it?
- Can I configure a different CLI version at the individual source level to work around this?
- Is my executor version (
1!0.x.y.z+docker) causing the wheel download failure?
Solution
The following steps identify the root cause and restore normal ingestion operation.
-
Confirm the failure scope.
Check whether all ingestion sources are failing with the same
TaskError: Failed to set up virtual environmenterror. If so, the problem is in the globaldefaultCliVersionsetting, not in any individual source recipe. The executor version (e.g.,1!0.x.y.z+docker) shown in the logs is the executor process version and is a separate value — it is not the cause of the wheel download failure. -
Identify the CLI version being requested.
In the execution summary logs, locate the version string referenced in the error:
RuntimeError: Failed to download acryl-datahub wheel for version '<version>'This is the value that was resolved from the server-side
defaultCliVersionconfiguration and passed as the pip requirementacryl-datahub==<version>. -
Verify wheel availability on the configured package index.
Depending on your deployment, the executor resolves wheels from either PyPI or a private/internal package registry. Confirm that the requested version is present and not yanked on whichever index your environment uses:
- For PyPI: https://pypi.org/project/acryl-datahub/#history
- For a private registry (e.g., an internal ECR or Artifactory mirror): check with your platform or infrastructure team.
If the version does not exist on the index your executor uses, that is the direct cause of the failure.
-
Update
defaultCliVersionto a valid, published version.The
defaultCliVersionis set server-side in the managed ingestion configuration. Update it to a version that is confirmed to be available on your package index. For DataHub Cloud deployments, contact DataHub Support to apply this change. For self-hosted deployments, update the value in your Helm values file:# Example Helm values snippet (self-hosted deployments) datahub: ingestion: defaultCliVersion: "<latest-stable-version>" # e.g., "1.1.0.4" or newerReplace
<latest-stable-version>with the latest confirmed-available release. After updating, redeploy the affected services so the new value takes effect. -
Verify system jobs resume successfully.
After the configuration update and redeployment, trigger or wait for the next scheduled ingestion run and confirm that the execution summary no longer contains
TaskError: Failed to set up virtual environment. All sources using the default CLI version should recover automatically.
Additional Notes
- There is no client-side workaround for this failure. The
defaultCliVersionis resolved globally on the server and applied to all ingestion jobs using the default version. Individual source recipes cannot override it to bypass a missing wheel. - The executor has no fallback behavior if the requested wheel version is unavailable — the venv setup fails hard, which causes every ingestion job on that executor instance to fail immediately.
- For DataHub Cloud (managed) deployments, do not attempt to modify executor infrastructure or package registries directly. Open a support ticket so the DataHub team can update the server-side
defaultCliVersionto a valid release and coordinate any required redeployment. - This failure mode can surface as a result of a release coordination gap where the platform configuration is updated to reference a new CLI version before the corresponding wheel has been published to (or made available on) the configured package index.
- The executor process version (displayed with a PEP 440 epoch prefix, e.g.,
1!0.x.y.z+docker) is independent of the CLI wheel version and does not contribute to this error. - If your environment uses a private/internal package mirror rather than PyPI, ensure the mirror has been updated to include the target wheel version before updating
defaultCliVersion.
Related Documentation
- DataHub Cloud Managed Overview
- DataHub Ingestion Executor Architecture
- Setting Up a Remote Ingestion Executor
Tags: ingestion, executor, venv-setup, wheel-download, acryl-datahub, defaultCliVersion, system-jobs, version-mismatch, pip-install, remote-executor