Area: Ingestion Issues
Sub-Area: CLI / Package Installation
Issue
When installing acryl-datahub[dbt] versions ranging from 1.5.0 through 1.5.0.9 (including release candidates such as 1.5.0.9rc1), pip or uv dependency resolution fails because these versions pin sqlglot[c]==30.0.3, which in turn requires the compiled C extension package sqlglotc==30.0.3. That specific sqlglotc version was removed from PyPI, making it impossible to satisfy the dependency. This affects any environment — including Apache Airflow PythonVirtualenvOperator pipelines, CI/CD systems, and local virtual environments — that pins one of the affected CLI versions. Because uv (used by newer Airflow versions as the default installer) is stricter than pip and will not fall back to source compilation, the error surfaces prominently in those setups.
Error Messages
No solution found when resolving dependencies:Because there is no version of sqlglotc==30.0.3 and sqlglot[c]==30.0.3 depends on sqlglotc==30.0.3, we can conclude that sqlglot[c]==30.0.3 cannot be used.And because acryl-datahub[dbt]==<affected-version> depends on sqlglot[c]==30.0.3 and you require acryl-datahub[dbt]==<affected-version>, we can conclude that your requirements are unsatisfiable.CalledProcessError: Command '['uv', 'pip', 'install', ...]' returned non-zero exit status 1.
You Might Be Asking
- Why did my DataHub dbt ingestion pipeline suddenly stop installing when nothing in my environment changed?
- Why does
uv pip installfail to resolvesqlglotceven though the same install worked previously? - Does this affect stable releases as well as release candidates of
acryl-datahub? - Can I work around this without upgrading the CLI version?
Solution
-
Upgrade to a current stable release of
acryl-datahub(recommended).Versions
1.5.0through1.5.0.9(including all1.5.0.xrelease candidates) all carry the brokensqlglot[c]==30.0.3pin. Upgrade to a later stable release that does not depend on the removedsqlglotcpackage. For example, in an AirflowPythonVirtualenvOperator:requirements=[ "acryl-datahub[dbt]>=1.7.0", # pin to a specific stable version appropriate for your environment "azure-identity", "azure-keyvault-secrets" ],Check the acryl-datahub PyPI release history for the latest stable version and pin to it explicitly.
-
Avoid pinning release candidates in production.
Release candidates (versions suffixed with
rc) are pre-release builds not intended for production use. They may carry transient dependency pins that are later revised or whose upstream packages are removed. Always use a final stable release in production pipelines. -
(Workaround only) Switch from
uvback topipin Airflow.If you temporarily cannot upgrade the CLI version, you can instruct Airflow's
PythonVirtualenvOperatorto usepipinstead ofuv.pipmay attempt to buildsqlglotcfrom source if a C compiler is available in the environment. This is a workaround only — it does not guarantee a successful build and does not resolve the underlying missing package.ingest_all_task = PythonVirtualenvOperator( task_id='ingest_all_dbt_recipes', python_callable=run_all_dbt_ingestions, op_kwargs={ 'recipe_paths': recipe_files, 'env': '<your-deployment-env>', 'dag_folder': dag_folder }, requirements=[ "acryl-datahub[dbt]==<affected-version>", "azure-identity", "azure-keyvault-secrets" ], use_uv=False, # reverts to pip; check your Airflow version for the exact parameter name system_site_packages=False, execution_timeout=timedelta(hours=2), )Note: The
use_uvparameter is available in Airflow versions that supportuvas an installer. Verify the exact parameter name for your Airflow version in its documentation. -
Verify the fix.
After updating the pinned version, trigger a test run of your ingestion pipeline and confirm the virtual environment is created and packages install successfully before promoting the change to production.
Additional Notes
All acryl-datahub versions from 1.5.0 through 1.5.0.9 (stable and RC alike) share the broken sqlglot[c]==30.0.3 dependency pin and are equally affected. The root cause is the removal of sqlglotc==30.0.3 from PyPI by its maintainers — this is an upstream packaging event, not a change in your environment. Pipelines that previously installed these versions successfully will continue to fail on fresh installs because the required package is no longer available on the registry. The recommended long-term fix is to track current stable CLI releases and avoid hard-pinning to versions in the 1.5.0.x series.
Related Documentation
Tags: cli-installation, sqlglotc, pip-install-failure, dependency-resolution, acryl-datahub-dbt, uv, airflow, PythonVirtualenvOperator, ingestion-pipeline, version-pinning