<?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 Re: Missing upstream column lineage missing from api call after some time in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157907#M54632</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/117384"&gt;@Mario_D&lt;/a&gt;,&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea" data-pm-slice="1 1 []"&gt;From what I can gather, this can happen, and it’s usually less about a restriction on calling the API itself and more about how lineage was captured or what the caller is allowed to see.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;A few common reasons are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The caller no longer has permission to see the upstream objects.&amp;nbsp;Lineage follows the Unity Catalog permission model. Without at least BROWSE/SELECT on the upstream table, users can’t explore that lineage, and internal examples show API responses where missing lineage is effectively permission-masked. So, if something has changed in week 2, this could be a reason.&lt;/LI&gt;
&lt;LI class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The upstream side was read or written in a way that doesn’t support full column lineage capture.&lt;/LI&gt;
&lt;LI class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The query pattern changed between runs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;For example, Databricks documents that column lineage is only supported when both the source and target are referenced by table name. If either side is referenced as a path, column lineage may not be captured. The docs also call out other cases that can affect lineage capture, such as UDFs, RDDs, global temp views, checkpointing, and renames.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The public reference for this is here: &lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/data-lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;Data lineage in Unity Catalog.&lt;/A&gt;&amp;nbsp;That page is especially useful for the documented permissions requirements and lineage limitations.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;So in your week 1 vs week 2 example, I’d first check:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Whether the same permissions still existed on the upstream tables&lt;/LI&gt;
&lt;LI&gt;Whether the upstream read/write logic changed in any way&lt;/LI&gt;
&lt;LI&gt;Whether the source and target were still both referenced by table name&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;If those all stayed the same and only upstream disappeared, then it may be worth validating the behaviour against the documented lineage limitations. If these are not due to limitations, it may be worth raising a support ticket for the team to investigate.&lt;/P&gt;
&lt;P&gt;Another key point to note is that the native UC lineage REST endpoints appear to be not publicly documented, even though public docs still reference "the API" in a generic sense. The publicly documented and recommended programmatic interface for native lineage is the lineage system tables. So, you should consider system.access.table_lineage and system.access.column_lineage as the &lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/lineage" target="_blank"&gt;documented&lt;/A&gt; programmatic path.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also note that s&lt;SPAN&gt;ystem tables update throughout the day, so if recent lineage is missing, you may want to try again later.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;FONT size="2" color="#FF6600"&gt;&lt;STRONG&gt;&lt;I&gt;If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.&lt;/I&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 29 May 2026 14:41:53 GMT</pubDate>
    <dc:creator>Ashwin_DSA</dc:creator>
    <dc:date>2026-05-29T14:41:53Z</dc:date>
    <item>
      <title>Missing upstream column lineage missing from api call after some time</title>
      <link>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157903#M54630</link>
      <description>&lt;P&gt;I ran the following piece of code on 2 occasions.&lt;/P&gt;&lt;P&gt;table_name = 'full path of table"&lt;BR /&gt;lineage = w.api_client.do(&lt;BR /&gt;"GET",&lt;BR /&gt;f"/api/2.0/lineage-tracking/column-lineage",&lt;BR /&gt;body={&lt;BR /&gt;"table_name": table_name,&lt;BR /&gt;"column_name": "column_x"&lt;BR /&gt;}&lt;BR /&gt;)&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;u_lineage_df &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; spark.&lt;/SPAN&gt;&lt;SPAN&gt;createDataFrame&lt;/SPAN&gt;&lt;SPAN&gt;(lineage[&lt;/SPAN&gt;&lt;SPAN&gt;'downstream_cols'&lt;/SPAN&gt;&lt;SPAN&gt;])&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;d_lineage_df = spark.createDataFrame(lineage['ustream_cols'])&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;In week 1, i got both downstream and upstream data.&lt;BR /&gt;In week 2 however, i got only downstream data.&lt;/P&gt;&lt;P&gt;What could be the cause of this?&lt;/P&gt;&lt;P&gt;Do note that this is highly redacted version, I'm just wondering if there are some restrictions in using the api.&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 13:41:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157903#M54630</guid>
      <dc:creator>Mario_D</dc:creator>
      <dc:date>2026-05-29T13:41:26Z</dc:date>
    </item>
    <item>
      <title>Re: Missing upstream column lineage missing from api call after some time</title>
      <link>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157906#M54631</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/117384"&gt;@Mario_D&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Great question. I've run into this exact issue before in my own projects! When lineage suddenly disappears, it's almost never an API restriction. Instead, it's usually one of three things happening under the hood in Unity Catalog:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Lost Permissions (Most Common):&lt;/STRONG&gt; Unity Catalog hides lineage for security if your user or Service Principal lost BROWSE or SELECT access to the upstream tables between Week 1 and Week 2. Check if you can still see those upstream tables in the Catalog Explorer!&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Table Re-creation:&lt;/STRONG&gt; If someone (or a job) dropped and recreated the upstream table instead of just updating it, the historical lineage link breaks.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Pipeline Code Changes:&lt;/STRONG&gt; Lineage is built dynamically from Spark execution plans. If someone changed the ETL notebook/job and it no longer actually pulls from that upstream column, the lineage will update to reflect that.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;One quick catch on your code:&lt;/STRONG&gt; I noticed a typo in your snippet! You wrote lineage['ustream_cols'] instead of upstream_cols (missing the 'p'). If that is exactly how it is in your live script, it will definitely fail to pull the data!&lt;/P&gt;&lt;P&gt;Hope this points you in the right direction!&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 14:40:09 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157906#M54631</guid>
      <dc:creator>ShamenParis</dc:creator>
      <dc:date>2026-05-29T14:40:09Z</dc:date>
    </item>
    <item>
      <title>Re: Missing upstream column lineage missing from api call after some time</title>
      <link>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157907#M54632</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/117384"&gt;@Mario_D&lt;/a&gt;,&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea" data-pm-slice="1 1 []"&gt;From what I can gather, this can happen, and it’s usually less about a restriction on calling the API itself and more about how lineage was captured or what the caller is allowed to see.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;A few common reasons are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The caller no longer has permission to see the upstream objects.&amp;nbsp;Lineage follows the Unity Catalog permission model. Without at least BROWSE/SELECT on the upstream table, users can’t explore that lineage, and internal examples show API responses where missing lineage is effectively permission-masked. So, if something has changed in week 2, this could be a reason.&lt;/LI&gt;
&lt;LI class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The upstream side was read or written in a way that doesn’t support full column lineage capture.&lt;/LI&gt;
&lt;LI class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The query pattern changed between runs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;For example, Databricks documents that column lineage is only supported when both the source and target are referenced by table name. If either side is referenced as a path, column lineage may not be captured. The docs also call out other cases that can affect lineage capture, such as UDFs, RDDs, global temp views, checkpointing, and renames.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The public reference for this is here: &lt;A href="https://docs.databricks.com/aws/en/data-governance/unity-catalog/data-lineage" rel="noopener noreferrer nofollow" target="_blank"&gt;Data lineage in Unity Catalog.&lt;/A&gt;&amp;nbsp;That page is especially useful for the documented permissions requirements and lineage limitations.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;So in your week 1 vs week 2 example, I’d first check:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Whether the same permissions still existed on the upstream tables&lt;/LI&gt;
&lt;LI&gt;Whether the upstream read/write logic changed in any way&lt;/LI&gt;
&lt;LI&gt;Whether the source and target were still both referenced by table name&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;If those all stayed the same and only upstream disappeared, then it may be worth validating the behaviour against the documented lineage limitations. If these are not due to limitations, it may be worth raising a support ticket for the team to investigate.&lt;/P&gt;
&lt;P&gt;Another key point to note is that the native UC lineage REST endpoints appear to be not publicly documented, even though public docs still reference "the API" in a generic sense. The publicly documented and recommended programmatic interface for native lineage is the lineage system tables. So, you should consider system.access.table_lineage and system.access.column_lineage as the &lt;A href="https://docs.databricks.com/aws/en/admin/system-tables/lineage" target="_blank"&gt;documented&lt;/A&gt; programmatic path.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also note that s&lt;SPAN&gt;ystem tables update throughout the day, so if recent lineage is missing, you may want to try again later.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;FONT size="2" color="#FF6600"&gt;&lt;STRONG&gt;&lt;I&gt;If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.&lt;/I&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 14:41:53 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/missing-upstream-column-lineage-missing-from-api-call-after-some/m-p/157907#M54632</guid>
      <dc:creator>Ashwin_DSA</dc:creator>
      <dc:date>2026-05-29T14:41:53Z</dc:date>
    </item>
  </channel>
</rss>

