Skip to content

Fork test: PR #1319 - Persist check metadata across table storage backends (message_expr + typed user_metadata)#1322

Open
mwojtyczka wants to merge 6 commits into
mainfrom
fork-test/pr-1319
Open

Fork test: PR #1319 - Persist check metadata across table storage backends (message_expr + typed user_metadata)#1322
mwojtyczka wants to merge 6 commits into
mainfrom
fork-test/pr-1319

Conversation

@mwojtyczka

Copy link
Copy Markdown
Contributor

Automated sync from fork PR for CI testing.

Original PR: #1319

All tests, including unit and integration tests run on this PR (they are skipped for fork PRs).

fedeflowers and others added 4 commits July 11, 2026 13:20
Add a message_expr column to the Delta and Lakebase checks-table schemas and
JSON-encode user_metadata values on the Delta path so custom messages and
non-string metadata survive a save->load round-trip through a table backend
(previously they only round-tripped via File/Volume). Existing tables are
migrated in place: Delta generalizes the versioning-column ALTER to add
message_expr, and Lakebase adds it idempotently on save and detects its
presence on load. safe_json_load tolerates None so legacy NULL map values
decode safely.

Resolves #1308
@mwojtyczka
mwojtyczka requested a review from a team as a code owner July 12, 2026 20:57
@mwojtyczka mwojtyczka added do-not-merge The PR is blocked, e.g. being worked on and not ready. Not using draft to be able to test changes. fork-test labels Jul 12, 2026
@mwojtyczka
mwojtyczka requested review from nehamilak-db and removed request for a team July 12, 2026 20:57
@mwojtyczka mwojtyczka added do-not-merge The PR is blocked, e.g. being worked on and not ready. Not using draft to be able to test changes. fork-test labels Jul 12, 2026
@github-actions

github-actions Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

❌ 796/800 passed, 28 flaky, 4 failed, 42 skipped, 4h25m23s total

❌ test_complete_installation: databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support. (23.279s)
... (skipped 8625 bytes)
low_installer] Updating configuration for step=e2e job_id=493528104017386
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=anomaly-trainer
16:33 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:33 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.101/sec
16:33 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:19.766458
16:32 INFO [tests.conftest] Overriding DATABRICKS_CLUSTER_ID with DATABRICKS_DQX_CLUSTER_ID: DATABRICKS_DQX_CLUSTER_ID
16:32 INFO [databricks.sdk] Using Databricks Metadata Service authentication
16:32 DEBUG [databricks.labs.dqx.installer.install] Cannot find previous installation: Path (/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.w2S0/config.yml) doesn't exist.
16:32 INFO [databricks.labs.dqx.installer.install] Please answer a couple of questions to provide TEST_SCHEMA DQX run configuration. The configuration can also be updated manually after the installation.
16:32 INFO [databricks.labs.dqx.installer.install] DQX will be installed in the TEST_SCHEMA location: '/Users/<your_user>/.dqx'
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Log level
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Should the input data be read using streaming?
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location for the input data as a path or table in the fully qualified format `catalog.schema.table` or `schema.table`
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the input data (e.g. delta, parquet, csv, json)
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide schema for the input data (e.g. col1 int, col2 string)
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for reading the input data (e.g. {"versionAsOf": "0"})
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide output table in the fully qualified format `catalog.schema.table` or `schema.table` (skipped if only a quarantine table is needed)
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide write mode for output table (e.g. 'append' or 'overwrite')
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the output data (e.g. delta, parquet)
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for writing the output data (e.g. {"mergeSchema": "true"})
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide quarantined table in the fully qualified format `catalog.schema.table` or `schema.table` (use output table if skipped)
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to store summary metrics from data quality checking in a table?
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location of the quality checks definitions, either:
- a filename for storing data quality rules (e.g. checks.yml),
- or a table for storing checks in the format `catalog.schema.table` or `schema.table`,
- or a full volume path in the format /Volumes/catalog/schema/volume/<folder_path>/<file_name_with_extension>,

16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide filename for storing profile summary statistics
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to use standard job clusters for the workflows execution (not Serverless)?
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide reference tables to use for checks as a dictionary that maps reference table name to reference data location. The specification can contain fields from InputConfig such as: location, format, schema, options and is_streaming fields (e.g. {"reference_vendor":{"location": "catalog.schema.table", "format": "delta"}})
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide custom check functions as a dictionary that maps function name to a python module located in the workspace file (relative or absolute workspace path) or volume (e.g. {"my_func": "/Workspace/Shared/my_module.py"}), 
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: �[1mSelect PRO or SERVERLESS SQL warehouse to run data quality dashboards on�[0m
�[1m[0]�[0m �[36m [Create new PRO or SERVERLESS SQL warehouse ] �[0m
�[1m[1]�[0m �[36mDEFAULT Test Warehouse (DATABRICKS_WAREHOUSE_ID, SERVERLESS, RUNNING)�[0m
�[1m[2]�[0m �[36mlakebridge-warehouse-1777612667393322000 (0c215d29cdbb26a8, SERVERLESS, STOPPED)�[0m
�[1m[3]�[0m �[36mlakebridge-warehouse-1777612819281826000 (0fddf4e5c3a1b2d0, SERVERLESS, STOPPED)�[0m
�[1m[4]�[0m �[36mlakebridge-warehouse-1779247502115456000 (580e0888de09dbb3, SERVERLESS, STOPPED)�[0m
�[1m[5]�[0m �[36mlakebridge-warehouse-1780587091184992000 (62bb064f30a43470, SERVERLESS, STOPPED)�[0m
�[1m[6]�[0m �[36mlakebridge-warehouse-1780587168705108000 (413e0c11521a3aec, SERVERLESS, STOPPED)�[0m
�[1m[7]�[0m �[36mlakebridge-warehouse-1780921066719842000 (5c534205dc34f9af, SERVERLESS, STOPPED)�[0m
�[1m[8]�[0m �[36mlakebridge-warehouse-1780921471133321000 (f44edc881cc087c5, SERVERLESS, STOPPED)�[0m
Enter a number between 0 and 8
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Does the given workspace block Internet access?
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Open config file in the browser and continue installing? https://DATABRICKS_HOST/#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.w2S0/config.yml
16:32 INFO [databricks.labs.dqx.installer.install] Installing DQX v0.15.1+1720260716163256
16:32 WARNING [databricks.labs.dqx.installer.version_checker] DQX workspace remote version not found: Path (/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.w2S0/version.json) doesn't exist.
16:32 WARNING [databricks.labs.blueprint.upgrades] No upgrades folder: /home/runner/work/dqx/dqx/src/databricks/labs/dqx/upgrades
16:32 INFO [databricks.labs.blueprint.tui] Asking prompt: Open config file in the browser and continue installing? https://DATABRICKS_HOST/#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.w2S0/config.yml
16:32 INFO [databricks.labs.dqx.installer.install] Installing DQX v0.15.1+1720260716163256
16:32 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating dashboards...
16:32 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Query Folder is /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards
16:32 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard definition from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:32 INFO [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:32 INFO [databricks.labs.dqx.installer.dashboard_installer] Loading exported Lakeview dashboard: DQX_Dashboard.lvdash.json
16:32 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Metadata retrieved: DQX_Dashboard.lvdash
16:32 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating new dashboard: DQX Dashboard
16:32 INFO [databricks.labs.dqx.installer.dashboard_installer] Published dashboard: 'DQX Dashboard'
16:32 INFO [databricks.labs.dqx.installer.dashboard_installer] Successfully installed dashboard: DQX Dashboard (01f1813400c7139995c2d80539bbc1e1)
16:32 INFO [databricks.labs.blueprint.parallel] Installing dashboards 1/1, rps: 0.894/sec
16:32 INFO [databricks.labs.blueprint.parallel] Finished 'Installing dashboards' tasks: 0% results available (0/1). Took 0:00:01.119272
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=profiler
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=quality-checker
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=e2e
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Updating configuration for step=e2e job_id=493528104017386
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Updating configuration for step=e2e job_id=493528104017386
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Updating configuration for step=e2e job_id=493528104017386
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=anomaly-trainer
16:33 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:33 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.101/sec
16:33 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:19.766458
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to uninstall DQX from the workspace? this would remove dqx project install_folder, dashboards, and jobs
16:33 INFO [databricks.labs.dqx.installer.install] Deleting DQX v0.15.1+1720260716163256 from https://DATABRICKS_HOST
16:33 INFO [databricks.labs.dqx.installer.install] Uninstalling DQX complete
[gw2] linux -- Python 3.12.3 /home/runner/work/dqx/dqx/.venv/bin/python
❌ test_complete_installation_with_custom_folder: databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support. (13.654s)
... (skipped 8193 bytes)
board (01f181340e551fe48b2c41ab0fc186c5)
16:33 INFO [databricks.labs.blueprint.parallel] Installing dashboards 1/1, rps: 0.938/sec
16:33 INFO [databricks.labs.blueprint.parallel] Finished 'Installing dashboards' tasks: 0% results available (0/1). Took 0:00:01.066291
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=profiler
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=quality-checker
16:33 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:33 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.189/sec
16:33 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:10.602956
16:33 INFO [tests.conftest] Overriding DATABRICKS_CLUSTER_ID with DATABRICKS_DQX_CLUSTER_ID: DATABRICKS_DQX_CLUSTER_ID
16:33 INFO [databricks.sdk] Using Databricks Metadata Service authentication
16:33 INFO [databricks.labs.pytester.fixtures.workspace] Created folder: https://DATABRICKS_HOST#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/dummy-uHX0Jr67-ra78c36642
16:33 DEBUG [databricks.labs.dqx.installer.install] Cannot find previous installation: Path (/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/dummy-uHX0Jr67-ra78c36642/config.yml) doesn't exist.
16:33 INFO [databricks.labs.dqx.installer.install] Please answer a couple of questions to provide TEST_SCHEMA DQX run configuration. The configuration can also be updated manually after the installation.
16:33 INFO [databricks.labs.dqx.installer.install] DQX will be installed in folder '/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/dummy-uHX0Jr67-ra78c36642'
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Log level
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Should the input data be read using streaming?
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location for the input data as a path or table in the fully qualified format `catalog.schema.table` or `schema.table`
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the input data (e.g. delta, parquet, csv, json)
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide schema for the input data (e.g. col1 int, col2 string)
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for reading the input data (e.g. {"versionAsOf": "0"})
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide output table in the fully qualified format `catalog.schema.table` or `schema.table` (skipped if only a quarantine table is needed)
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide write mode for output table (e.g. 'append' or 'overwrite')
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the output data (e.g. delta, parquet)
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for writing the output data (e.g. {"mergeSchema": "true"})
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide quarantined table in the fully qualified format `catalog.schema.table` or `schema.table` (use output table if skipped)
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to store summary metrics from data quality checking in a table?
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location of the quality checks definitions, either:
- a filename for storing data quality rules (e.g. checks.yml),
- or a table for storing checks in the format `catalog.schema.table` or `schema.table`,
- or a full volume path in the format /Volumes/catalog/schema/volume/<folder_path>/<file_name_with_extension>,

16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide filename for storing profile summary statistics
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to use standard job clusters for the workflows execution (not Serverless)?
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide reference tables to use for checks as a dictionary that maps reference table name to reference data location. The specification can contain fields from InputConfig such as: location, format, schema, options and is_streaming fields (e.g. {"reference_vendor":{"location": "catalog.schema.table", "format": "delta"}})
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide custom check functions as a dictionary that maps function name to a python module located in the workspace file (relative or absolute workspace path) or volume (e.g. {"my_func": "/Workspace/Shared/my_module.py"}), 
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: �[1mSelect PRO or SERVERLESS SQL warehouse to run data quality dashboards on�[0m
�[1m[0]�[0m �[36m [Create new PRO or SERVERLESS SQL warehouse ] �[0m
�[1m[1]�[0m �[36mDEFAULT Test Warehouse (DATABRICKS_WAREHOUSE_ID, SERVERLESS, RUNNING)�[0m
�[1m[2]�[0m �[36mlakebridge-warehouse-1777612667393322000 (0c215d29cdbb26a8, SERVERLESS, STOPPED)�[0m
�[1m[3]�[0m �[36mlakebridge-warehouse-1777612819281826000 (0fddf4e5c3a1b2d0, SERVERLESS, STOPPED)�[0m
�[1m[4]�[0m �[36mlakebridge-warehouse-1779247502115456000 (580e0888de09dbb3, SERVERLESS, STOPPED)�[0m
�[1m[5]�[0m �[36mlakebridge-warehouse-1780587091184992000 (62bb064f30a43470, SERVERLESS, STOPPED)�[0m
�[1m[6]�[0m �[36mlakebridge-warehouse-1780587168705108000 (413e0c11521a3aec, SERVERLESS, STOPPED)�[0m
�[1m[7]�[0m �[36mlakebridge-warehouse-1780921066719842000 (5c534205dc34f9af, SERVERLESS, STOPPED)�[0m
�[1m[8]�[0m �[36mlakebridge-warehouse-1780921471133321000 (f44edc881cc087c5, SERVERLESS, STOPPED)�[0m
Enter a number between 0 and 8
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Does the given workspace block Internet access?
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Open config file in the browser and continue installing? https://DATABRICKS_HOST/#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/dummy-uHX0Jr67-ra78c36642/config.yml
16:33 INFO [databricks.labs.dqx.installer.install] Installing DQX v0.15.1+1720260716163319
16:33 WARNING [databricks.labs.dqx.installer.version_checker] DQX workspace remote version not found: Path (/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/dummy-uHX0Jr67-ra78c36642/version.json) doesn't exist.
16:33 WARNING [databricks.labs.blueprint.upgrades] No upgrades folder: /home/runner/work/dqx/dqx/src/databricks/labs/dqx/upgrades
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Open config file in the browser and continue installing? https://DATABRICKS_HOST/#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/dummy-uHX0Jr67-ra78c36642/config.yml
16:33 INFO [databricks.labs.dqx.installer.install] Installing DQX v0.15.1+1720260716163319
16:33 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating dashboards...
16:33 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Query Folder is /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards
16:33 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard definition from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:33 INFO [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:33 INFO [databricks.labs.dqx.installer.dashboard_installer] Loading exported Lakeview dashboard: DQX_Dashboard.lvdash.json
16:33 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Metadata retrieved: DQX_Dashboard.lvdash
16:33 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating new dashboard: DQX Dashboard
16:33 INFO [databricks.labs.dqx.installer.dashboard_installer] Published dashboard: 'DQX Dashboard'
16:33 INFO [databricks.labs.dqx.installer.dashboard_installer] Successfully installed dashboard: DQX Dashboard (01f181340e551fe48b2c41ab0fc186c5)
16:33 INFO [databricks.labs.blueprint.parallel] Installing dashboards 1/1, rps: 0.938/sec
16:33 INFO [databricks.labs.blueprint.parallel] Finished 'Installing dashboards' tasks: 0% results available (0/1). Took 0:00:01.066291
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=profiler
16:33 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=quality-checker
16:33 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:33 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.189/sec
16:33 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:10.602956
16:33 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to uninstall DQX from the workspace? this would remove dqx project install_folder, dashboards, and jobs
16:33 INFO [databricks.labs.dqx.installer.install] Deleting DQX v0.15.1+1720260716163319 from https://DATABRICKS_HOST
16:33 INFO [databricks.labs.dqx.installer.install] Uninstalling DQX complete
[gw2] linux -- Python 3.12.3 /home/runner/work/dqx/dqx/.venv/bin/python
❌ test_profiler_workflow_with_ai_rules_generation_and_model_api_keys_as_secrets: databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support. (10.968s)
... (skipped 8442 bytes)
ep=e2e job_id=894073803402910
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=anomaly-trainer
16:36 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:36 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.304/sec
16:36 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:06.573457
16:36 INFO [tests.conftest] Overriding DATABRICKS_CLUSTER_ID with DATABRICKS_DQX_CLUSTER_ID: DATABRICKS_DQX_CLUSTER_ID
16:36 INFO [databricks.sdk] Using Databricks Metadata Service authentication
16:36 INFO [databricks.sdk] Using Databricks Metadata Service authentication
16:36 DEBUG [tests.integration.conftest] SparkKeepAlive started (interval=60s)
16:36 DEBUG [databricks.labs.dqx.installer.install] Cannot find previous installation: Path (/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.JelM/config.yml) doesn't exist.
16:36 INFO [databricks.labs.dqx.installer.install] Please answer a couple of questions to provide TEST_SCHEMA DQX run configuration. The configuration can also be updated manually after the installation.
16:36 INFO [databricks.labs.dqx.installer.install] DQX will be installed in the TEST_SCHEMA location: '/Users/<your_user>/.dqx'
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Log level
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Should the input data be read using streaming?
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location for the input data as a path or table in the fully qualified format `catalog.schema.table` or `schema.table`
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the input data (e.g. delta, parquet, csv, json)
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide schema for the input data (e.g. col1 int, col2 string)
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for reading the input data (e.g. {"versionAsOf": "0"})
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide output table in the fully qualified format `catalog.schema.table` or `schema.table` (skipped if only a quarantine table is needed)
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide write mode for output table (e.g. 'append' or 'overwrite')
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the output data (e.g. delta, parquet)
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for writing the output data (e.g. {"mergeSchema": "true"})
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide quarantined table in the fully qualified format `catalog.schema.table` or `schema.table` (use output table if skipped)
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to store summary metrics from data quality checking in a table?
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location of the quality checks definitions, either:
- a filename for storing data quality rules (e.g. checks.yml),
- or a table for storing checks in the format `catalog.schema.table` or `schema.table`,
- or a full volume path in the format /Volumes/catalog/schema/volume/<folder_path>/<file_name_with_extension>,

16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide filename for storing profile summary statistics
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to use standard job clusters for the workflows execution (not Serverless)?
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide reference tables to use for checks as a dictionary that maps reference table name to reference data location. The specification can contain fields from InputConfig such as: location, format, schema, options and is_streaming fields (e.g. {"reference_vendor":{"location": "catalog.schema.table", "format": "delta"}})
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide custom check functions as a dictionary that maps function name to a python module located in the workspace file (relative or absolute workspace path) or volume (e.g. {"my_func": "/Workspace/Shared/my_module.py"}), 
16:36 DEBUG [tests.integration.conftest] SparkKeepAlive: sent keep-alive query
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: �[1mSelect PRO or SERVERLESS SQL warehouse to run data quality dashboards on�[0m
�[1m[0]�[0m �[36m [Create new PRO or SERVERLESS SQL warehouse ] �[0m
�[1m[1]�[0m �[36mDEFAULT Test Warehouse (DATABRICKS_WAREHOUSE_ID, SERVERLESS, RUNNING)�[0m
�[1m[2]�[0m �[36mlakebridge-warehouse-1777612667393322000 (0c215d29cdbb26a8, SERVERLESS, STOPPED)�[0m
�[1m[3]�[0m �[36mlakebridge-warehouse-1777612819281826000 (0fddf4e5c3a1b2d0, SERVERLESS, STOPPED)�[0m
�[1m[4]�[0m �[36mlakebridge-warehouse-1779247502115456000 (580e0888de09dbb3, SERVERLESS, STOPPED)�[0m
�[1m[5]�[0m �[36mlakebridge-warehouse-1780587091184992000 (62bb064f30a43470, SERVERLESS, STOPPED)�[0m
�[1m[6]�[0m �[36mlakebridge-warehouse-1780587168705108000 (413e0c11521a3aec, SERVERLESS, STOPPED)�[0m
�[1m[7]�[0m �[36mlakebridge-warehouse-1780921066719842000 (5c534205dc34f9af, SERVERLESS, STOPPED)�[0m
�[1m[8]�[0m �[36mlakebridge-warehouse-1780921471133321000 (f44edc881cc087c5, SERVERLESS, STOPPED)�[0m
Enter a number between 0 and 8
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Does the given workspace block Internet access?
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Open config file in the browser and continue installing? https://DATABRICKS_HOST/#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.JelM/config.yml
16:36 INFO [databricks.labs.dqx.installer.install] Installing DQX v0.15.1+1720260716163602
16:36 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating dashboards...
16:36 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Query Folder is /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards
16:36 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard definition from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:36 INFO [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:36 INFO [databricks.labs.dqx.installer.dashboard_installer] Loading exported Lakeview dashboard: DQX_Dashboard.lvdash.json
16:36 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Metadata retrieved: DQX_Dashboard.lvdash
16:36 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating new dashboard: DQX Dashboard
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=profiler
16:36 INFO [databricks.labs.dqx.installer.dashboard_installer] Published dashboard: 'DQX Dashboard'
16:36 INFO [databricks.labs.dqx.installer.dashboard_installer] Successfully installed dashboard: DQX Dashboard (01f1813470261f968f02aa7c398e2734)
16:36 INFO [databricks.labs.blueprint.parallel] Installing dashboards 1/1, rps: 0.507/sec
16:36 INFO [databricks.labs.blueprint.parallel] Finished 'Installing dashboards' tasks: 0% results available (0/1). Took 0:00:01.973951
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=quality-checker
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=e2e
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Updating configuration for step=e2e job_id=894073803402910
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Updating configuration for step=e2e job_id=894073803402910
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Updating configuration for step=e2e job_id=894073803402910
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=anomaly-trainer
16:36 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:36 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.304/sec
16:36 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:06.573457
16:36 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to uninstall DQX from the workspace? this would remove dqx project install_folder, dashboards, and jobs
16:36 INFO [databricks.labs.dqx.installer.install] Deleting DQX v0.15.1+1720260716163602 from https://DATABRICKS_HOST
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Removing job_id=738080251103248, as it is no longer needed
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Removing job_id=447939330513052, as it is no longer needed
16:36 INFO [databricks.labs.dqx.installer.workflow_installer] Removing job_id=894073803402910, as it is no longer needed
16:36 INFO [databricks.labs.dqx.installer.install] Uninstalling DQX complete
16:36 DEBUG [tests.integration.conftest] SparkKeepAlive stopped
[gw7] linux -- Python 3.12.3 /home/runner/work/dqx/dqx/.venv/bin/python
❌ test_profiler_workflow_class_serverless: databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support. (8.193s)
... (skipped 7359 bytes)
ler] Creating new job configuration for step=profiler
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Published dashboard: 'DQX Dashboard'
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Successfully installed dashboard: DQX Dashboard (01f18134a7cb1550ad809c1289affe2f)
16:37 INFO [databricks.labs.blueprint.parallel] Installing dashboards 1/1, rps: 0.520/sec
16:37 INFO [databricks.labs.blueprint.parallel] Finished 'Installing dashboards' tasks: 0% results available (0/1). Took 0:00:01.922593
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=quality-checker
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=e2e
16:37 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:37 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.499/sec
16:37 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:04.005037
16:37 INFO [tests.conftest] Overriding DATABRICKS_CLUSTER_ID with DATABRICKS_DQX_CLUSTER_ID: DATABRICKS_DQX_CLUSTER_ID
16:37 INFO [databricks.sdk] Using Databricks Metadata Service authentication
16:37 INFO [databricks.sdk] Using Databricks Metadata Service authentication
16:37 DEBUG [tests.integration.conftest] SparkKeepAlive started (interval=60s)
16:37 DEBUG [databricks.labs.dqx.installer.install] Cannot find previous installation: Path (/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.BCYy/config.yml) doesn't exist.
16:37 INFO [databricks.labs.dqx.installer.install] Please answer a couple of questions to provide TEST_SCHEMA DQX run configuration. The configuration can also be updated manually after the installation.
16:37 INFO [databricks.labs.dqx.installer.install] DQX will be installed in the TEST_SCHEMA location: '/Users/<your_user>/.dqx'
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Log level
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Should the input data be read using streaming?
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location for the input data as a path or table in the fully qualified format `catalog.schema.table` or `schema.table`
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the input data (e.g. delta, parquet, csv, json)
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide schema for the input data (e.g. col1 int, col2 string)
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for reading the input data (e.g. {"versionAsOf": "0"})
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide output table in the fully qualified format `catalog.schema.table` or `schema.table` (skipped if only a quarantine table is needed)
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide write mode for output table (e.g. 'append' or 'overwrite')
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide format for the output data (e.g. delta, parquet)
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide additional options for writing the output data (e.g. {"mergeSchema": "true"})
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide quarantined table in the fully qualified format `catalog.schema.table` or `schema.table` (use output table if skipped)
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to store summary metrics from data quality checking in a table?
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide location of the quality checks definitions, either:
- a filename for storing data quality rules (e.g. checks.yml),
- or a table for storing checks in the format `catalog.schema.table` or `schema.table`,
- or a full volume path in the format /Volumes/catalog/schema/volume/<folder_path>/<file_name_with_extension>,

16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide filename for storing profile summary statistics
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to use standard job clusters for the workflows execution (not Serverless)?
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide reference tables to use for checks as a dictionary that maps reference table name to reference data location. The specification can contain fields from InputConfig such as: location, format, schema, options and is_streaming fields (e.g. {"reference_vendor":{"location": "catalog.schema.table", "format": "delta"}})
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Provide custom check functions as a dictionary that maps function name to a python module located in the workspace file (relative or absolute workspace path) or volume (e.g. {"my_func": "/Workspace/Shared/my_module.py"}), 
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: �[1mSelect PRO or SERVERLESS SQL warehouse to run data quality dashboards on�[0m
�[1m[0]�[0m �[36m [Create new PRO or SERVERLESS SQL warehouse ] �[0m
�[1m[1]�[0m �[36mDEFAULT Test Warehouse (DATABRICKS_WAREHOUSE_ID, SERVERLESS, RUNNING)�[0m
�[1m[2]�[0m �[36mlakebridge-warehouse-1777612667393322000 (0c215d29cdbb26a8, SERVERLESS, STOPPED)�[0m
�[1m[3]�[0m �[36mlakebridge-warehouse-1777612819281826000 (0fddf4e5c3a1b2d0, SERVERLESS, STOPPED)�[0m
�[1m[4]�[0m �[36mlakebridge-warehouse-1779247502115456000 (580e0888de09dbb3, SERVERLESS, STOPPED)�[0m
�[1m[5]�[0m �[36mlakebridge-warehouse-1780587091184992000 (62bb064f30a43470, SERVERLESS, STOPPED)�[0m
�[1m[6]�[0m �[36mlakebridge-warehouse-1780587168705108000 (413e0c11521a3aec, SERVERLESS, STOPPED)�[0m
�[1m[7]�[0m �[36mlakebridge-warehouse-1780921066719842000 (5c534205dc34f9af, SERVERLESS, STOPPED)�[0m
�[1m[8]�[0m �[36mlakebridge-warehouse-1780921471133321000 (f44edc881cc087c5, SERVERLESS, STOPPED)�[0m
Enter a number between 0 and 8
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Does the given workspace block Internet access?
16:37 DEBUG [tests.integration.conftest] SparkKeepAlive: sent keep-alive query
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Open config file in the browser and continue installing? https://DATABRICKS_HOST/#workspace/Users/3fe685a1-96cc-4fec-8cdb-6944f5c9787e/.BCYy/config.yml
16:37 INFO [databricks.labs.dqx.installer.install] Installing DQX v0.15.1+1720260716163736
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating dashboards...
16:37 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Query Folder is /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards
16:37 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard definition from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Reading dashboard from /home/runner/work/dqx/dqx/src/databricks/labs/dqx/dashboards/DQX_Dashboard.lvdash.json...
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Loading exported Lakeview dashboard: DQX_Dashboard.lvdash.json
16:37 DEBUG [databricks.labs.dqx.installer.dashboard_installer] Dashboard Metadata retrieved: DQX_Dashboard.lvdash
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Creating new dashboard: DQX Dashboard
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=profiler
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Published dashboard: 'DQX Dashboard'
16:37 INFO [databricks.labs.dqx.installer.dashboard_installer] Successfully installed dashboard: DQX Dashboard (01f18134a7cb1550ad809c1289affe2f)
16:37 INFO [databricks.labs.blueprint.parallel] Installing dashboards 1/1, rps: 0.520/sec
16:37 INFO [databricks.labs.blueprint.parallel] Finished 'Installing dashboards' tasks: 0% results available (0/1). Took 0:00:01.922593
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=quality-checker
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Creating new job configuration for step=e2e
16:37 ERROR [databricks.labs.blueprint.parallel] installing components task failed: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
Traceback (most recent call last):
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/labs/blueprint/parallel.py", line 168, in inner
    return func(*args, **kwargs), None
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 401, in create_jobs
    self._deploy_workflow(task.workflow, settings)
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/src/databricks/labs/dqx/installer/workflow_installer.py", line 482, in _deploy_workflow
    new_job = self._ws.jobs.create(**settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/service/jobs.py", line 8629, in create
    res = self._api.do("POST", "/api/2.2/jobs/create", body=body, headers=headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/core.py", line 94, in do
    return self._api_client.do(
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 199, in do
    response = call(
               ^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise err
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/retries.py", line 38, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/dqx/dqx/.venv/lib/python3.12/site-packages/databricks/sdk/_base_client.py", line 301, in _perform
    raise error from None
databricks.sdk.errors.platform.BadRequest: The quota for the number of jobs has been reached. The current quota is 12000. This quota is only applied to jobs created through the UI or through the /jobs/create endpoint, which are displayed in the Jobs UI. If this limit is hit, it is very likely some user programmatically created many jobs that only need to run once. In this case, we recommend to delete those jobs and to submit one-time job runs instead using the /jobs/runs/submit endpoint. There is no quota on the number of one-time job runs you can create. For more questions, please contact support.
16:37 INFO [databricks.labs.blueprint.parallel] installing components 2/2, rps: 0.499/sec
16:37 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:00:04.005037
16:37 INFO [databricks.labs.blueprint.tui] Asking prompt: Do you want to uninstall DQX from the workspace? this would remove dqx project install_folder, dashboards, and jobs
16:37 INFO [databricks.labs.dqx.installer.install] Deleting DQX v0.15.1+1720260716163736 from https://DATABRICKS_HOST
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Removing job_id=152368419884715, as it is no longer needed
16:37 INFO [databricks.labs.dqx.installer.workflow_installer] Removing job_id=224994637703179, as it is no longer needed
16:37 INFO [databricks.labs.dqx.installer.install] Uninstalling DQX complete
16:37 DEBUG [tests.integration.conftest] SparkKeepAlive stopped
[gw6] linux -- Python 3.12.3 /home/runner/work/dqx/dqx/.venv/bin/python

Flaky tests:

  • 🤪 test_profiler_when_run_config_missing (7.137s)
  • 🤪 test_quality_checker_when_run_config_missing (5.097s)
  • 🤪 test_workflows (4.799s)
  • 🤪 test_logs (6.957s)
  • 🤪 test_workflows_with_custom_folder (4.594s)
  • 🤪 test_logs_with_custom_folder (13.38s)
  • 🤪 test_e2e_workflow_serverless (8.229s)
  • 🤪 test_uninstallation (6.761s)
  • 🤪 test_uninstallation_with_custom_folder (6.659s)
  • 🤪 test_uninstallation_dashboard_does_not_exist_anymore (6.597s)
  • 🤪 test_installation (6.998s)
  • 🤪 test_uninstallation_with_custom_folder_dashboard_does_not_exist_anymore (8.663s)
  • 🤪 test_uninstallation_job_does_not_exist_anymore (6.86s)
  • 🤪 test_installation_with_custom_folder (9.728s)
  • 🤪 test_dashboard_state_installation (6.74s)
  • 🤪 test_uninstallation_with_custom_folder_job_does_not_exist_anymore (8.996s)
  • 🤪 test_dashboard_state_installation_with_custom_folder (8.852s)
  • 🤪 test_dashboard_workspace_installation (12.695s)
  • 🤪 test_installation_stores_install_state_keys (6.432s)
  • 🤪 test_dashboard_workspace_installation_with_custom_folder (8.375s)
  • 🤪 test_installation_with_custom_folder_stores_install_state_keys (8.533s)
  • 🤪 test_get_installation (7.014s)
  • 🤪 test_installation_when_dashboard_is_trashed (8.68s)
  • 🤪 test_installation_with_custom_folder_when_dashboard_is_trashed (8.914s)
  • 🤪 test_installation_when_dashboard_state_missing (13.53s)
  • 🤪 test_installation_with_custom_folder_when_dashboard_state_missing (12.91s)
  • 🤪 test_profiler_workflow_with_ai_rules_generation (8.607s)
  • 🤪 test_quality_checker_workflow_with_ref (5.871s)

Running from acceptance #5146

@github-actions

github-actions Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

✅ 194/194 passed, 4 flaky, 2 skipped, 7h0m13s total

Flaky tests:

  • 🤪 test_train_anomaly_cli (11.22s)
  • 🤪 test_train_anomaly_cli_when_run_config_missing (6.762s)
  • 🤪 test_model_staleness_warning (2m21.381s)
  • 🤪 test_expected_anomaly_rate_applied_when_contamination_unset (2m17.24s)

Running from anomaly #1260

@codecov

codecov Bot commented Jul 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 65.38462% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.66%. Comparing base (87a1c5e) to head (7f20161).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/databricks/labs/dqx/checks_storage.py 61.70% 18 Missing ⚠️

❗ There is a different number of reports uploaded between BASE (87a1c5e) and HEAD (7f20161). Click for more details.

HEAD has 35 uploads less than BASE
Flag BASE (87a1c5e) HEAD (7f20161)
unit 9 1
anomaly 9 1
anomaly-serverless 9 1
integration 9 0
integration-serverless 2 0
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1322       +/-   ##
===========================================
- Coverage   92.60%   74.66%   -17.95%     
===========================================
  Files         103      103               
  Lines       10378    10410       +32     
===========================================
- Hits         9611     7773     -1838     
- Misses        767     2637     +1870     
Flag Coverage Δ
anomaly 53.49% <25.00%> (-0.31%) ⬇️
anomaly-serverless 53.10% <25.00%> (-0.72%) ⬇️
integration ?
integration-serverless ?
unit 58.69% <65.38%> (+0.20%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

fedeflowers and others added 2 commits July 13, 2026 21:11
The Pydantic migration (#1259) narrowed DQRule/DQForEachColRule.user_metadata
to dict[str, str], regressing checks that carry non-string metadata values
(e.g. {"confidence": 0.95, "enabled": true}). Pre-migration dataclasses never
enforced the value type, and the table storage backends persist these values
faithfully, so validation rejected them on load with InvalidCheckError.

Relax both fields to dict[str, Any] | None to restore released behaviour.

Fixes the failing unit test test_lakebase_normalize_checks_preserves_non_string_user_metadata
and integration test test_save_and_load_checks_from_table_preserves_user_metadata_value_types.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge The PR is blocked, e.g. being worked on and not ready. Not using draft to be able to test changes. fork-test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants