Troubleshooting
Python version issues
Symptom: cloudpickle errors, recursion depth errors, or import failures with pyspark==3.5.5.
Cause: Python 3.13+ is incompatible with cloudpickle bundled with pyspark==3.5.5.
Fix: Use Python 3.10, 3.11, or 3.12.
python3.11 -m venv .venv
source .venv/bin/activate
Python 3.13+ is not supported with pyspark==3.5.5. This is a PySpark constraint.
"Materializing tables in custom schemas is not supported"
Symptom:
com.databricks.pipelines.common.errors.DLTAnalysisException: Materializing tables in custom schemas
is not supported. Please remove the database qualifier from table 'catalog_name.schema_name.table_name'
Cause: The pipeline was created in Legacy Publishing Mode.
Fix: Migrate to the default publishing mode: Migrate to the default publishing mode.
This migration is one-way. Verify in a non-production environment first.
Bundle validate fails with __SET_ME__ sentinel
Symptom: bundle-validate fails with a message about sdp_meta_dependency.
Fix: Set sdp_meta_dependency to a real value in resources/variables.yml:
# Option 1: Use a published PyPI version
sed -i 's/__SET_ME__/databricks-labs-sdp-meta==0.1.0/' resources/variables.yml
# Option 2: Upload a local wheel, then set the /Volumes/... path
databricks labs sdp-meta bundle-prepare-wheel
Onboarding job fails — DataflowSpec table not found
Symptom: Table not found: my_catalog.my_schema.bronze_dataflowspec_table.
Fix: Create the schema before running the onboarding job:
CREATE CATALOG IF NOT EXISTS my_catalog;
CREATE SCHEMA IF NOT EXISTS my_catalog.my_schema;
Pipeline fails with "No flows found for group X"
Symptom: Pipeline starts and immediately fails with No flows found for group retail_group.
Cause: The data_flow_group in the pipeline configuration doesn't match the onboarding file.
Fix: Ensure the pipeline's bronze.group (or silver.group) matches data_flow_group in the onboarding file exactly, including case.
{
"configuration": {
"layer": "bronze",
"bronze.group": "retail_group"
}
}
Autoloader schema inference issues
Symptom: Bronze table schema changes unexpectedly between pipeline runs.
Cause: Autoloader's schema inference samples files and can produce different results as new files arrive.
Fix: Provide an explicit Spark DDL schema file via source_schema_path:
{
"source_details": {
"source_schema_path": "/Volumes/my_catalog/my_schema/my_volume/schema/customers.ddl",
"source_path_dev": "s3://my-bucket/landing/customers/"
}
}
The DDL file uses standard Spark SQL schema syntax:
customer_id STRING,
name STRING,
email STRING,
created_at TIMESTAMP,
is_active BOOLEAN
Remove cloudFiles.inferColumnTypes from bronze_reader_options when using an explicit schema.
CDC apply_changes fails with duplicate keys
Symptom: create_auto_cdc_flow produces incorrect results when multiple events share the same key and sequence_by value.
Fix: Add a tiebreaker column to sequence_by:
{
"bronze_cdc_apply_changes": {
"keys": ["customer_id"],
"sequence_by": "dmsTimestamp,sequenceId",
"scd_type": "1"
}
}
For common questions about features, DAB, installation, and the App, see the FAQ.