Skip to content

Comments

Isolate bundled metric resolution failures by compute domain#11658

Open
Mr-Neutr0n wants to merge 2 commits intogreat-expectations:developfrom
Mr-Neutr0n:fix/isolate-metric-resolution-failures
Open

Isolate bundled metric resolution failures by compute domain#11658
Mr-Neutr0n wants to merge 2 commits intogreat-expectations:developfrom
Mr-Neutr0n:fix/isolate-metric-resolution-failures

Conversation

@Mr-Neutr0n
Copy link

Summary

Fixes #10709 — one expectation failure causes all expectations to fail with the same traceback.

When multiple expectations are validated together, their metrics get bundled into a single resolve_metric_bundle() call. If any single metric's domain fails (e.g., a missing condition_parser for Spark), the resulting exception is attributed to all bundled metrics — even those belonging to completely independent compute domains that would have resolved successfully.

This happens because _process_direct_and_bundled_metric_computation_configurations wraps the entire bundled resolution in one try/except and lists every bundled metric as failed regardless of which domain actually caused the error.

Changes

In ExecutionEngine._process_direct_and_bundled_metric_computation_configurations:

  • Group bundled MetricComputationConfiguration objects by their compute_domain_kwargs (using IDDict.to_id() — the same grouping mechanism already used inside resolve_metric_bundle in both the Spark and SQLAlchemy engines)
  • Call resolve_metric_bundle() once per domain group instead of once for all bundled metrics
  • If a group fails, only the metrics in that group are reported as failed; other groups continue resolving normally

This is a minimal, targeted fix in the base ExecutionEngine class so it applies to all backends (Spark, SQLAlchemy, Pandas) without changing any engine-specific code.

Test plan

When bundled metrics are resolved together via resolve_metric_bundle(),
a single domain error (e.g. missing condition_parser) causes all
bundled metrics to be reported as failed, even those belonging to
entirely separate compute domains.

Group bundled metric configurations by their compute domain before
resolving, so each domain group is processed independently. A failure
in one group only marks the metrics in that group as failed, while
metrics in other groups resolve normally.

Fixes great-expectations#10709
@netlify
Copy link

netlify bot commented Feb 13, 2026

‼️ Deploy request for niobium-lead-7998 rejected.

Name Link
🔨 Latest commit 553234e

@gx-cla-bot
Copy link

gx-cla-bot bot commented Feb 13, 2026

A new contributor, HUZZAH! Welcome and thanks for joining our community. In order to accept a pull request we require that all contributors sign our Contributor License Agreement. We have two different CLAs, depending on whether you are contributing to GX in a personal or professional capacity. Please sign the one that is applicable to your situation so that we may accept your contribution:

Individual Contributor License Agreement v1.0
Software Grant and Corporate Contributor License Agreement v1.0

Once you have signed the CLA, you can add a comment with the text @cla-bot check and the bot will update the PR status!

Please reach out to the #gx-community-support channel, on our Slack if you have any questions or if you have already signed the CLA and are receiving this message in error.

Users missing a CLA: mr-neutr0n

@gx-cla-bot
Copy link

gx-cla-bot bot commented Feb 13, 2026

A new contributor, HUZZAH! Welcome and thanks for joining our community. In order to accept a pull request we require that all contributors sign our Contributor License Agreement. We have two different CLAs, depending on whether you are contributing to GX in a personal or professional capacity. Please sign the one that is applicable to your situation so that we may accept your contribution:

Individual Contributor License Agreement v1.0
Software Grant and Corporate Contributor License Agreement v1.0

Once you have signed the CLA, you can add a comment with the text @cla-bot check and the bot will update the PR status!

Please reach out to the #gx-community-support channel, on our Slack if you have any questions or if you have already signed the CLA and are receiving this message in error.

Users missing a CLA: mr-neutr0n

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

All expectations fail if one fails with 'unrecognized condition_parser None for Spark execution engine'

1 participant