Tableau general troubleshooting

The following messages and issues can appear when you run the lineage harvester, view a technical lineage or upload the new relations to Data Catalog via Collibra Data Lineage.

Problem

Solution

You get connectivity issues with a 401001 error code.

Unfortunately, 401001 is a very general error code, returned by a Tableau API, that can refer to many issues, including but not limited to the following:

  • The lineage harvester configuration file was configured with the wrong password or Tableau site ID.
  • SSO authentication was used, which is not supported.

Ensure that the user/token that you intend to use to ingest Tableau assets can authenticate to your Tableau APIs via the command line, from the server on which you intend to install and run the lineage harvester.

You can test your ability to authenticate by making the signin API call, using a cURL command.

You can also try checking the login request that the lineage harvester is sending to the Tableau server.

For complete information and guidance on how to test your ability to connect to the Tableau server and authenticate, see Test connectivity with the Tableau server.

The authentication token is automatically refreshed in the case of an HTTP 401 Unauthorized error. If the token is refreshed, the log file includes the following line: Refreshing token.

If a refreshed token doesn't resolve the issue, the problem could be that there are too many concurrent HTTP calls, using the same token. Try using the optional concurrencyLevel property in your lineage harvester configuration file, to indicate that you want HTTP requests to be run in a synchronous manner, instead of in parallel.

The lineage harvester does not connect to hosts using a proxy server.

Technical lineage does not support proxy server authentication, but you can connect to a proxy server. For complete details, including the necessary commands, see Connecting to a proxy server.

You get a TCP timeout error.

To avoid TCP timeout errors, try configuring the Linux TCP keepalive setting:

  1. Edit your /etc/sysctl.conf file:
    # vi /etc/sysctl.conf
  2. Add the following settings:
    net.ipv4.tcp_keepalive_time = 60
    net.ipv4.tcp_keepalive_intvl = 10
    net.ipv4.tcp_keepalive_probes = 6
  3. To load the settings, run the following command:
    # sysctl -p
The designation "UNDEFINED" is shown in the technical lineage. If you are using a Tableau <source ID> configuration file, ensure that you have specified a value for the relevant collibraSystemName property.

You get the following error message or a similar certificate error:

Source '<data source name> failed with exception: javax.net.ssl.SSLHandshakeException: General SSLEngine problem

This message appears when the proxy server sends an unexpected certificate to the lineage harvester or when the default Java TrustStore is empty or outdated.

First update Java and rerun the lineage harvester to see if that resolves the issue. If the same error message is shown, try the following:

You get an external system ID mapping error.

The error message looks similar to the following:

PROCESSING ERROR: "syncer.domain.DgcSyncError: java.lang.Exception: Unexpected DGC job status: ERROR
Error message: {
"type" : "MESSAGE",
"message" : "A mapping for the external system id 'd0f3a21a2324fa117112409bdea6ade7' and resource '59cf9293-fca1-4f78-99ab-31c150a23626' already exists."
}
Caused by: java.lang.Exception: Unexpected DGC job status: ERROR
Error message: {
"type" : "MESSAGE",
"message" : "A mapping for the external system id 'd0f3a21a2324fa117112409bdea6ade7' and resource '59cf9293-fca1-4f78-99ab-31c150a23626' already exists."
}"

Please create a support ticket and provide your answers to the following two questions.

Note Refer to the example error message above and replace the IDs of the external system and the mapped resource with those in the error message you received.

  • What is the asset type of the mapped asset? In this example, the asset with ID 59cf9293-fca1-4f78-99ab-31c150a23626?
    Tip To view the asset type, go to the following URL: <your-collibra-platform-url>/asset/59cf9293-fca1-4f78-99ab-31c150a23626
  • What is the mapping definition?
    Tip To view the mapping definition, go to the following URL: <your-collibra-platform-url>/rest/2.0/mappings/externalSystem/d0f3a21a2324fa117112409bdea6ade7/mappedResource/59cf9293-fca1-4f78-99ab-31c150a23626

If you are using Collibra Data Intelligence Cloud 2021.11 or older, you have to add all Tableau attributes in the operating model to a scope and create a scoped assignment before you ingest Tableau via the lineage harvester.

Note If you ingest Tableau metadata in a Collibra version 2021.09 or older, you must also manually create two new relation types and add them to the Tableau <source ID> configuration file.

In Collibra, the name of a Tableau Data Attribute name is an asterisk (*).

If you ingest a Tableau dataset that doesn't have any attributes, asterisks (*) are shown as the Tableau Data Attribute asset names in Collibra.

You get the following error message:

Can’t show all data because the timeout limit PT1M has been exceeded. Use pagination, additional filtering, or both in the query, and try again.

To resolve this error, try lowering the relevant paging option value (or values) for the failing query. Consider the following failure summary:

harvester.AbstractHarvester - Failure summary:
	Source ‘tabemeat’ failed with exception: harvester.error.TableauHarvesterError: Failed to process Tableau source: Failed to execute metadata query. Errors: [{“message”:“Can’t show all data because the timeout limit PT1M has been exceeded. Use pagination, additional filtering, or both in the query, and try again.“}].
	Query: query worksheets($cursor: String, $pageSize: Int, $nestedPageSize: Int) {
		sheetsConnection(first: $pageSize, after: $cursor) {
			nodes {
			id
			name
			luid
			....

In this example, the query name is worksheets:

Query: query worksheets($cursor: String, $pageSize: Int, $nestedPageSize: Int)

Try lowering one or both of the paging option values for worksheets:

  • worksheetsPageSize (default value is 100)
  • worksheetsFieldsPageSize (default value is 100)