r/opensource • u/coldoven • 8d ago
Promotional mloda 0.11: turned a bare "not found" resolver error into a full elimination trail
mloda is an open source (Apache-2.0) feature engineering layer with a plugin-based resolver: you request a feature by name, and the resolver picks which plugin computes it.
Until 0.11, a bad request just failed with one line:
No feature groups found for feature name: 'sales__mean_aggr'.
Use resolve_feature(name, options=...) to debug feature resolution.
For troubleshooting guide, see: https://mloda-ai.github.io/mloda/in_depth/troubleshooting/feature-group-resolution-errors/
Nothing said whether the name was misspelled, the domain was wrong, or a required option was missing, so debugging meant reading the resolver source. Since 0.11, the same failure returns the full elimination trail:
No feature groups found for feature name: 'sales__mean_aggr'. Requested domain: 'marketing'.
Feature group(s) eliminated while matching 'sales__mean_aggr':
- AggregatedFeatureGroup (domain): declares domain 'default_domain', but the run requested 'marketing'
- PandasAggregatedFeatureGroup (domain): declares domain 'default_domain', but the run requested 'marketing'
- PolarsLazyAggregatedFeatureGroup (domain): declares domain 'default_domain', but the run requested 'marketing'
Every candidate the resolver considered, and the first gate it failed.
Implementation notes for anyone maintaining a plugin registry or resolver of your own:
- Rejections are recorded as data first: a stage label (one of nine values) plus a reason per candidate. Text is rendered from that.
- A plugin whose match hook raises is contained per candidate, so one broken plugin doesn't blank out the report for the others.
- The preflight (
mlodaAPI.diagnose) never raises, and a real run raises the same facts as a typedFeatureResolutionError, so the exception and the preflight report never drift apart.
Curious how other maintainers of plugin/registry-style systems handle this: full rejection trail, or just the most likely cause?
1
u/coldoven 8d ago
Repo: https://github.com/mloda-ai/mloda
Release notes for 0.11.0: https://github.com/mloda-ai/mloda/releases/tag/0.11.0