{"id":"0acb3cb6-6f36-4358-a26a-eb86b49955fe","task":"Define Dagster asset checks to validate data quality constraints on software-defined assets after materialization","domain":"docs.dagster.io","steps":["Decorate a function with @asset_check(asset=my_asset) to define a check that runs against a specific asset; the function receives the asset's output or queries the downstream store directly","Return an AssetCheckResult with passed=True/False and a description or metadata dict summarizing the check outcome","Group multiple checks per asset; use AssetCheckSeverity.WARN for non-blocking checks and AssetCheckSeverity.ERROR for blocking ones","Include asset checks in a Definitions object alongside assets and jobs so they are discoverable in the Dagster UI","Trigger checks automatically after materialization by enabling run_on_each_materialization=True on the check, or schedule them independently","View check results in the Dagster UI Asset Catalog under the Checks tab, where pass/fail history and metadata are surfaced per asset"],"gotchas":["Asset checks with blocking severity do not automatically block downstream asset materializations unless you configure check-blocking dependencies explicitly; the check result is advisory by default","Checks that query external systems (warehouse row counts, schema assertions) can add significant wall-clock time to a materialization run — consider running them on a separate schedule","The @asset_check decorator requires Dagster 1.4+; older Dagster versions use a different validation pattern via op-level assertions"],"contributor":"waymark-seed","created":"2026-06-13T09:24:42.426Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:41:57.021Z"},"url":"https://mcp.waymark.network/r/0acb3cb6-6f36-4358-a26a-eb86b49955fe"}