Skip to content

fix: Resolve feature view batch source name against registry - #6849

Open
patelchaitany wants to merge 1 commit into
feast-dev:masterfrom
patelchaitany:fix/rest-apply-feature-view-batch-source
Open

patelchaitany wants to merge 1 commit into
feast-dev:masterfrom
patelchaitany:fix/rest-apply-feature-view-batch-source

Conversation

@patelchaitany

@patelchaitany patelchaitany commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fixes An internal error occurred when creating a featureview through the Feast UI #6845 — creating a feature view through the Feast UI always failed with an internal error.
  • POST /api/v1/feature_views receives the batch source as a name, but the handler built a DataSourceProto from just that name, leaving type and all other fields at their default. DataSource.from_proto then rejected it with "Could not identify the source type being added.", surfacing as a 500 from the UI.
  • Resolves the name through the registry (GetDataSource) instead, so the feature view spec carries the registered source's actual type along with its options (path, timestamp columns, connection settings). An unregistered name now raises FeastObjectNotFoundException, which the REST registry server and UI server already map to a 404.

Test plan

  • uv run bash -c "cd sdk/python && mypy feast/api/registry/rest/feature_views.py"
  • uv run ruff check sdk/python/feast/api/registry/rest/feature_views.py
  • Manually verify: feast init && feast apply && feast ui, then create a feature view from the UI and confirm it succeeds.

@patelchaitany
patelchaitany requested a review from a team as a code owner September 18, 2026 11:53
POST /api/v1/feature_views takes the batch source as a name, but the
handler turned that name into a DataSourceProto with every other field
left at its default. With `type` unset, DataSource.from_proto rejected
the spec with "Could not identify the source type being added.", so
creating a feature view from the UI always failed.

Resolve the name through the registry instead, so the feature view spec
carries the registered source's type along with its options (path,
timestamp columns, connection settings). Setting `type` alone would not
be enough: each concrete source reads its own options out of the proto,
which would persist a feature view pointing at a gutted source.

An unregistered name now raises FeastObjectNotFoundException, which both
the standalone REST registry server and the UI server already map to a
404 instead of the previous 500.

Signed-off-by: Chaitany Patel <patelchaitany93@gmail.com>
@patelchaitany
patelchaitany force-pushed the fix/rest-apply-feature-view-batch-source branch from f2b4ace to ceb4059 Compare September 18, 2026 11:54
@codecov-commenter

codecov-commenter commented Sep 18, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 50.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.43%. Comparing base (fa8f06b) to head (ceb4059).

Files with missing lines Patch % Lines
...dk/python/feast/api/registry/rest/feature_views.py 50.00% 1 Missing and 1 partial ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6849      +/-   ##
==========================================
- Coverage   47.43%   47.43%   -0.01%     
==========================================
  Files         422      422              
  Lines       52263    52266       +3     
  Branches     7582     7583       +1     
==========================================
  Hits        24791    24791              
- Misses      25708    25709       +1     
- Partials     1764     1766       +2     
Flag Coverage Δ
go-feature-server 30.58% <ø> (ø)
python-unit 48.75% <50.00%> (-0.01%) ⬇️
Files with missing lines Coverage Δ
...dk/python/feast/api/registry/rest/feature_views.py 73.01% <50.00%> (-0.65%) ⬇️

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fa8f06b...ceb4059. Read the comment docs.

🚀 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.

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.

An internal error occurred when creating a featureview through the Feast UI

2 participants