<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Error to create an endpoint of databricks with 2 primary keys online table in Machine Learning</title>
    <link>https://community.databricks.com/t5/machine-learning/error-to-create-an-endpoint-of-databricks-with-2-primary-keys/m-p/90800#M3687</link>
    <description>&lt;P&gt;I have a delta table that has a primary key conformed by 2 fields (accountId,ruleModelVersionDesc) and I have also created an online table that has the same primary key, but when I create a feature spec to create an endpoint I get the following error:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Exception: {'error_code': 'INVALID_PARAMETER_VALUE', 'message': 'Failed to create a new FeatureSpec. Features could not be parsed: INVALID_PARAMETER_VALUE: Following nodes form a cycle: accountId. Please resolve any circular dependencies before calling Feature Store.'}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I have been able to create the spec before without problems, about 1 month ago, does anyone know if anything has been changed ?&lt;/P&gt;&lt;P&gt;I have tried with version 14.3 and 15.3 of runtine ML.&lt;/P&gt;</description>
    <pubDate>Tue, 17 Sep 2024 22:21:28 GMT</pubDate>
    <dc:creator>lchicoma</dc:creator>
    <dc:date>2024-09-17T22:21:28Z</dc:date>
    <item>
      <title>Error to create an endpoint of databricks with 2 primary keys online table</title>
      <link>https://community.databricks.com/t5/machine-learning/error-to-create-an-endpoint-of-databricks-with-2-primary-keys/m-p/90800#M3687</link>
      <description>&lt;P&gt;I have a delta table that has a primary key conformed by 2 fields (accountId,ruleModelVersionDesc) and I have also created an online table that has the same primary key, but when I create a feature spec to create an endpoint I get the following error:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Exception: {'error_code': 'INVALID_PARAMETER_VALUE', 'message': 'Failed to create a new FeatureSpec. Features could not be parsed: INVALID_PARAMETER_VALUE: Following nodes form a cycle: accountId. Please resolve any circular dependencies before calling Feature Store.'}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I have been able to create the spec before without problems, about 1 month ago, does anyone know if anything has been changed ?&lt;/P&gt;&lt;P&gt;I have tried with version 14.3 and 15.3 of runtine ML.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Sep 2024 22:21:28 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/error-to-create-an-endpoint-of-databricks-with-2-primary-keys/m-p/90800#M3687</guid>
      <dc:creator>lchicoma</dc:creator>
      <dc:date>2024-09-17T22:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: Error to create an endpoint of databricks with 2 primary keys online table</title>
      <link>https://community.databricks.com/t5/machine-learning/error-to-create-an-endpoint-of-databricks-with-2-primary-keys/m-p/136715#M4387</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/79028"&gt;@lchicoma&lt;/a&gt;&amp;nbsp;, sorry for the delayed response.&amp;nbsp; Thanks for sharing the error and context—this looks like a parsing issue in the feature specification rather than a problem with Delta or the runtime versions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 class="paragraph"&gt;What changed recently&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;There was an incident during a rollout of the new &lt;STRONG&gt;server-side FeatureSpec generation&lt;/STRONG&gt; in September 2024 that caused FeatureSpec creation to fail with errors like “Following nodes form a cycle” for certain configurations, especially when feature/table names had uppercase characters or when features weren’t explicitly listed. This rollout was rolled back and the issue mitigated at the time. As part of that incident, teams observed that explicitly listing features and using all-lowercase names avoided the failure while the fix was being rolled out. Similar “cycle” errors have been seen when the lookup key is a string and the system misinterprets it during parsing, though this wasn’t a documented limitation of FeatureLookup itself. The error class INVALID_PARAMETER_VALUE you’re seeing is a generic validation error category used across Databricks services when inputs can’t be parsed or validated.&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H3 class="paragraph"&gt;Why you might see “Following nodes form a cycle: accountId”&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;A “cycle” here means the feature graph constructed from your spec references itself. Common causes: * The &lt;STRONG&gt;primary key&lt;/STRONG&gt; (for example, accountId) is also included as a feature output or referenced by a &lt;STRONG&gt;FeatureFunction&lt;/STRONG&gt; that indirectly produces a column with the same name, creating a self-loop in the graph.&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;The &lt;STRONG&gt;lookup_key_list&lt;/STRONG&gt; (or equivalent) was passed in a format that the parser now treats differently, such as a single comma-separated string instead of a list, leading the generator to create a node that points back to itself. During the 2024 ramp-up, differences in how keys/features were inferred triggered cycle errors; explicitly listing features and using lowercase names avoided it.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;&lt;STRONG&gt;Mixed-case names&lt;/STRONG&gt; in tables or features can still occasionally cause server-side spec generation to infer dependencies incorrectly when features aren’t explicitly listed; switching to lowercase names for the spec inputs is a quick test/workaround.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;If your “feature table” is actually a &lt;STRONG&gt;view&lt;/STRONG&gt;, server-side generation won’t support it and can fail with related parsing/validation errors. Use a physical table for feature lookups.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;Practical fixes to try&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;Try these in order; they’re safe, low-effort checks that often resolve this exact error:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Ensure your keys are not included in the feature outputs. Only non-key columns should be in your feature_names list.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Pass lookup keys as a list of strings (not a single comma-separated string or other structure). For example: ```python from databricks.feature_engineering import FeatureEngineeringClient, FeatureLookup&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;fe = FeatureEngineeringClient()&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;fl = FeatureLookup( table_name="catalog.schema.my_online_table", lookup_key_list=["accountId", "ruleModelVersionDesc"], feature_names=["feature_a", "feature_b", "feature_c"] # exclude keys )&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;spec = fe.create_feature_spec( name="catalog.schema.my_feature_spec", features=[fl] # only lookups/functions; no key columns as outputs ) ```&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Explicitly list the features instead of relying on auto-inference. That avoids the paths where server-side generation needs to guess and can create cycles.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Temporarily standardize names to all lowercase in the spec (keys, table identifier, feature names) and re-try. This has historically avoided the parser issue seen during server-side generation ramp-up.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;Double-check that none of your FeatureFunctions return a column named accountId or ruleModelVersionDesc, and that no transformation reassigns a key column name to a feature output.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="paragraph"&gt;If your feature source is a view, switch to a physical table (Delta) for the lookup.&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="paragraph"&gt;Why runtime version doesn’t matter here&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;This failure occurs during feature spec parsing/validation on the control plane (and server-side generation), not during cluster execution. Changing the Databricks Runtime ML version typically won’t affect this specific error.&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H3 class="paragraph"&gt;If it still fails If the above doesn’t resolve it:&lt;/H3&gt;
&lt;UL&gt;
&lt;LI class="paragraph"&gt;Try creating a minimal spec with a single FeatureLookup, the two lookup keys as a list, and one non-key feature; if that works, gradually add features/functions to isolate the component that introduces the cycle.&lt;/LI&gt;
&lt;LI&gt;If the cycle persists even in a minimal spec, it may be a workspace-specific server-side generation edge case. Reference incident ES-1260877 when you escalate; it documents a prior regression in server-side generation that produced similar “cycle” errors and the mitigations used.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;Cheers, Louis.&lt;/DIV&gt;</description>
      <pubDate>Thu, 30 Oct 2025 09:56:18 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/error-to-create-an-endpoint-of-databricks-with-2-primary-keys/m-p/136715#M4387</guid>
      <dc:creator>Louis_Frolio</dc:creator>
      <dc:date>2025-10-30T09:56:18Z</dc:date>
    </item>
  </channel>
</rss>

