Description
After upgrading to Tableau Server 2025.3, we are seeing a KeyError in our LangChain-based VDS metadata handling logic. The issue appears to be caused by a breaking change in the VDS API response schema for the endpoint below, where certain keys (e.g., logicalTableId) may no longer be present for some field objects.
Affected Endpoint
POST /api/v1/vizql-data-service/read-metadata
Error Location
In our metadata post-processing loop, we remove fields that are not needed. However, in Tableau Server 2025.3, at least one expected key is missing, causing KeyError.
File: simple_data_qa.py
Line: ~139
for field in datasource_metadata['data']:
del field['fieldName']
del field['logicalTableId']
Actual Behavior
When a field object does not include logicalTableId, the line below throws a KeyError:
del field['logicalTableId']
Expected Behavior
The VDS read-metadata response should either:
consistently include the key(s) as in prior versions, or
clearly document the schema change and provide guidance for consumers to handle missing keys safely.
Suspected Root Cause
API response schema change in Tableau Server 2025.3 for read-metadata, where logicalTableId is not guaranteed to exist in all cases.
Workaround / Suggested Fix (Client Side)
Use a safe delete pattern:
for field in datasource_metadata.get('data', []):
field.pop('fieldName', None)
field.pop('logicalTableId', None)
(or check existence before deleting)
Reference
VizQL Data Service “What’s New” (Release Notes):
https://help.tableau.com/current/api/vizql-data-service/en-us/docs/vds_whats_new.html
Description
After upgrading to Tableau Server 2025.3, we are seeing a KeyError in our LangChain-based VDS metadata handling logic. The issue appears to be caused by a breaking change in the VDS API response schema for the endpoint below, where certain keys (e.g., logicalTableId) may no longer be present for some field objects.
Affected Endpoint
POST /api/v1/vizql-data-service/read-metadata
Error Location
In our metadata post-processing loop, we remove fields that are not needed. However, in Tableau Server 2025.3, at least one expected key is missing, causing KeyError.
File: simple_data_qa.py
Line: ~139
for field in datasource_metadata['data']:
del field['fieldName']
del field['logicalTableId']
Actual Behavior
When a field object does not include logicalTableId, the line below throws a KeyError:
del field['logicalTableId']
Expected Behavior
The VDS read-metadata response should either:
consistently include the key(s) as in prior versions, or
clearly document the schema change and provide guidance for consumers to handle missing keys safely.
Suspected Root Cause
API response schema change in Tableau Server 2025.3 for read-metadata, where logicalTableId is not guaranteed to exist in all cases.
Workaround / Suggested Fix (Client Side)
Use a safe delete pattern:
for field in datasource_metadata.get('data', []):
field.pop('fieldName', None)
field.pop('logicalTableId', None)
(or check existence before deleting)
Reference
VizQL Data Service “What’s New” (Release Notes):
https://help.tableau.com/current/api/vizql-data-service/en-us/docs/vds_whats_new.html