Hi @Mario_D,
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.
A few common reasons are:
- The caller no longer has permission to see the upstream objects. 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.
- The upstream side was read or written in a way that doesn’t support full column lineage capture.
- The query pattern changed between runs.
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.
The public reference for this is here: Data lineage in Unity Catalog. That page is especially useful for the documented permissions requirements and lineage limitations.
So in your week 1 vs week 2 example, I’d first check:
- Whether the same permissions still existed on the upstream tables
- Whether the upstream read/write logic changed in any way
- Whether the source and target were still both referenced by table name
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.
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 documented programmatic path.
Also note that system tables update throughout the day, so if recent lineage is missing, you may want to try again later.
If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.
Regards,
Ashwin | Delivery Solution Architect @ Databricks
Helping you build and scale the Data Intelligence Platform.
***Opinions are my own***