Hey all, I am wondering if Meltano is parallelizi...
# troubleshooting
a
Hey all, I am wondering if Meltano is parallelizing the requests in my tap stream (or making them async) . And if this is the case, if it is possible to disable this. This is the context for my question: I am pulling metadata from the rest api of my tableau server. When accessing some of the tableau sites (the bigger ones) my tap fails within 1 or 2 seconds. The logs show that it was able to successfully authenticate and to sign in but shortly after it raises "401002: Unauthorized Access; Invalid authentication credentials were provided". Why do I think this issue might be related to Meltano? Because 1. the same code and credentials and package versions work outside of Meltano and 2. When looking into the Tableau api error code I stumbled upon this Issue discussing problems with async requests https://github.com/tableau/server-client-python/issues/1342 This is my code:
Copy code
"""Stream type classes for tap-tableau-metadata."""

from typing import Any, Dict, Optional, Union, List, Iterable
from singer_sdk import typing as th
from singer_sdk.streams import RESTStream

#from tap_tableau.client import TableauStream

import tableauserverclient as TSC

class TableauStream(RESTStream):
    """Tableau stream class."""

    url_base = None

    def get_server_client(self):

        tableau_auth = TSC.PersonalAccessTokenAuth(self.config['personal_access_token_name'], self.config['personal_access_token_secret'], self.config.get('site_url_id'))
        server_client = TSC.Server(self.config['server_url'], self.config['api_version']) if self.config.get('api_version') else TSC.Server(self.config['server_url'], use_server_version=True)

        return tableau_auth, server_client


class DatasourcesStream(TableauStream):
    name = "datasources"
    primary_keys = ["id"]
    replication_key = None
    schema = th.PropertiesList(
        th.Property("id", th.StringType),
        # ...
    ).to_dict()

    def get_records(self, context: Optional[dict]) -> Iterable[dict]:
        """Return a generator of row-type dictionary objects."""

        tableau_auth, server_client = self.get_server_client()

        with server_client.auth.sign_in(tableau_auth):
            for datasource in TSC.Pager(server_client.datasources):
                server_client.datasources.populate_connections(datasource)
                server_client.datasources.populate_permissions(datasource)
                row = {
                    'id': datasource.id,
                    #...
                }
                yield row
Note: The same issue occurs when relying on the tableau tap in the Meltano Hub from GtheSheep (https://hub.meltano.com/extractors/tap-tableau/) I am running:
Copy code
Meltano = 3.6.0 
Python = 3.11
tableauserverclient = 0.25 (the latest version 0.37 does not resolve this issue)
singer-sdk = "~=0.34.0"
e
Hi @alex đź‘‹
I am wondering if Meltano is parallelizing the requests in my tap stream (or making them async)
In short, no Meltano nor the SDK is parallelizing any requests. It calls
get_records
sequentially for each stream. What happens if you add a
break
immediately after that
yield
statement? Does it produce the same error?
a
Hey Edgar, thanks for the quick answer. Yes the error prevails with a break right after the yield. Below you can find the full logs. I replaced the state and run ids, in the hope of making them a little more readable. I also redacted some tableau ids. • In lines 12, 15, 18 you can see multiple log in logs • line 49 is the error I was focusing on • there are more errors regarding json deserialization. I did not focus on them for now, because they seem downstream from what I assume is the actual error in line 49. Let me know if you think Im wrong
Copy code
meltano el tap-tableau target-s3-parquet --select datasources

2025-04-25T08:37:54.208131Z [info     ] Environment 'dev' is active   
2025-04-25T08:37:54.543573Z [info     ] Running extract & load...      name=meltano run_id=rund_id state_id=state_id
2025-04-25T08:37:54.626283Z [warning  ] No state was found, complete import.
2025-04-25T08:37:57.099750Z [info     ] 2025-04-25 08:37:57,098 WARNING Could not append type because the JSON schema for the dictionary `{'oneOf': [{'type': ['number']}, {'type': ['string']}]}` appears to be invalid. cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:57.106038Z [info     ] 2025-04-25 08:37:57,105 INFO tap-tableau v2.0.0, Meltano SDK v0.34.1 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:57.106536Z [info     ] 2025-04-25 08:37:57,106 INFO Skipping parse of env var settings... cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:57.114583Z [info     ] 2025-04-25 08:37:57,113 | INFO     | tap-tableau.datasources | Beginning full_table sync of 'datasources'... cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr        
2025-04-25T08:37:57.115157Z [info     ] 2025-04-25 08:37:57,114 | INFO     | tap-tableau.datasources | Tap has custom mapper. Using 1 provided map(s). cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr      
2025-04-25T08:37:57.640149Z [info     ] 2025-04-25 08:37:57,638 | INFO     | TSC.server           | versions: 3.23, 2.4 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:57.845664Z [info     ] 2025-04-25 08:37:57,845 | INFO     | tableau.endpoint.auth | Signed into <https://tableau.teamviewer-it.com/> as user with id 123 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:57.846296Z [info     ] 2025-04-25 08:37:57,845 | INFO     | tableau.endpoint.datasources | Querying all datasources on site cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.308739Z [info     ] 2025-04-25 08:37:58,308 | INFO     | TSC.server           | versions: 3.23, 2.4 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.442979Z [info     ] 2025-04-25 08:37:58,442 | INFO     | tableau.endpoint.auth | Signed into <https://tableau.teamviewer-it.com/> as user with id 123 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.443602Z [info     ] 2025-04-25 08:37:58,443 | INFO     | tableau.endpoint.datasources | Populated connections for datasource (ID: a1b2c3) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.660366Z [info     ] 2025-04-25 08:37:58,659 | INFO     | TSC.server           | versions: 3.23, 2.4 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.748823Z [info     ] 2025-04-25 08:37:58,748 | INFO     | tableau.endpoint.auth | Signed into <https://tableau.teamviewer-it.com/> as user with id 123 cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.749633Z [info     ] 2025-04-25 08:37:58,748 | INFO     | tableauserverclient.server.endpoint.permissions_endpoint | Populated permissions for item (ID: a1b2c3) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.830121Z [info     ] 2025-04-25 08:37:58,828 | INFO     | singer_sdk.metrics   | METRIC: {"type": "timer", "metric": "sync_duration", "value": 1.7127809524536133, "tags": {"stream": "datasources", "context": {}, "status": "failed"}} cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.830798Z [info     ] 2025-04-25 08:37:58,829 | INFO     | singer_sdk.metrics   | METRIC: {"type": "counter", "metric": "record_count", "value": 0, "tags": {"stream": "datasources", "context": {}}} cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.840246Z [info     ] 2025-04-25 08:37:58,830 | ERROR    | tap-tableau.datasources | An unhandled error occurred while syncing 'datasources' cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.840838Z [info     ] Traceback (most recent call last): cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.841233Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/streams/core.py", line 1191, in sync cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.841549Z [info     ]     for _ in self._sync_records(context=context): cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.841837Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/streams/core.py", line 1085, in _sync_records cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.842106Z [info     ]     for record_result in self.get_records(current_context): cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.842380Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tap_tableau/streams.py", line 125, in get_records cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.842638Z [info     ]     } for connection in datasource.connections], cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.842906Z [info     ]                         ^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.843146Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/models/datasource_item.py", line 78, in connections cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.843481Z [info     ]     return self._connections() cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.843744Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.843994Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/datasources_endpoint.py", line 103, in connections_fetcher cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.844275Z [info     ]     return self._get_datasource_connections(datasource_item) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.844574Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.844809Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/datasources_endpoint.py", line 110, in _get_datasource_connections cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.845107Z [info     ]     server_response = self.get_request(url, req_options) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.845342Z [info     ]                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.846448Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 140, in get_request cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.846741Z [info     ]     return self._make_request( cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.847029Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.847289Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 87, in _make_request cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.847543Z [info     ]     self._check_status(server_response, url) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.847781Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 102, in _check_status cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.848019Z [info     ]     raise ServerResponseError.from_response(server_response.content, self.parent_srv.namespace, url) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.848291Z [info     ] tableauserverclient.server.endpoint.exceptions.ServerResponseError: cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.848557Z [info     ]                                cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.848826Z [info     ]         401002: Unauthorized Access   cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.849088Z [info     ]                 Invalid authentication credentials were provided. cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.849815Z [info     ] Traceback (most recent call last): cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.850076Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/bin/tap-tableau", line 8, in <module> cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.850326Z [info     ]     sys.exit(Taptableau.cli()) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.850564Z [info     ]              ^^^^^^^^^^^^^^^^  cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.850847Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/click/core.py", line 1161, in __call__ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.851107Z [info     ]     return self.main(*args, **kwargs) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.851365Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.851613Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/click/core.py", line 1082, in main cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.851894Z [info     ]     rv = self.invoke(ctx)      cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.852164Z [info     ]          ^^^^^^^^^^^^^^^^      cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.852418Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/plugin_base.py", line 105, in invoke cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.852676Z [info     ]     return super().invoke(ctx) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.852992Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.853233Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/click/core.py", line 1443, in invoke cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.853485Z [info     ]     return ctx.invoke(self.callback, **ctx.params) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.853743Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.853996Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/click/core.py", line 788, in invoke cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.854253Z [info     ]     return __callback(*args, **kwargs) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.854505Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.854780Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/tap_base.py", line 502, in invoke cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.855145Z [info     ]     tap.sync_all()             cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.855395Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/tap_base.py", line 461, in sync_all cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id
 stdio=stderr
2025-04-25T08:37:58.855647Z [info     ]     stream.sync()              cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.855901Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/streams/core.py", line 1198, in sync cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.856150Z [info     ]     raise ex                   cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.856406Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/streams/core.py", line 1191, in sync cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.856652Z [info     ]     for _ in self._sync_records(context=context): cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.857255Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/singer_sdk/streams/core.py", line 1085, in _sync_records cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.858277Z [info     ]     for record_result in self.get_records(current_context): cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.858539Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tap_tableau/streams.py", line 125, in get_records cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.860463Z [info     ]     } for connection in datasource.connections], cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.861037Z [info     ]                         ^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.861238Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/models/datasource_item.py", line 78, in connections cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.861525Z [info     ]     return self._connections() cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.861815Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.862094Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/datasources_endpoint.py", line 103, in connections_fetcher cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.862286Z [info     ]     return self._get_datasource_connections(datasource_item) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.863223Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.864397Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/datasources_endpoint.py", line 110, in _get_datasource_connections cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.865145Z [info     ]     server_response = self.get_request(url, req_options) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.865397Z [info     ]                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.865598Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 140, in get_request cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.865810Z [info     ]     return self._make_request( cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.866045Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.866388Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 87, in _make_request cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.867657Z [info     ]     self._check_status(server_response, url) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.867857Z [info     ]   File "/meltano/.meltano/extractors/tap-tableau/venv/lib/python3.11/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 102, in _check_status cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.868080Z [info     ]     raise ServerResponseError.from_response(server_response.content, self.parent_srv.namespace, url) cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.868295Z [info     ] tableauserverclient.server.endpoint.exceptions.ServerResponseError: cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.868477Z [info     ]                                cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.868646Z [info     ]         401002: Unauthorized Access   cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:58.868843Z [info     ]                 Invalid authentication credentials were provided. cmd_type=extractor name=tap-tableau run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.549014Z [info     ] 2025-04-25 08:37:59,547 | INFO     | target-s3-parquet    | Target 'target-s3-parquet' is listening for input from tap. cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.549607Z [info     ] 2025-04-25 08:37:59,549 | INFO     | target-s3-parquet    | Initializing 'target-s3-parquet' target sink... cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr      
2025-04-25T08:37:59.549945Z [info     ] 2025-04-25 08:37:59,549 | INFO     | target-s3-parquet.datasources | Initializing target sink for stream 'datasources'... cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.576294Z [info     ] 2025-04-25 08:37:59,575 | INFO     | target-s3-parquet.datasources | Initialized S3 Parquet  with batch size: 100000 cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.577097Z [info     ] 2025-04-25 08:37:59,575 | INFO     | target-s3-parquet.datasources | Setting up datasources cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.578541Z [info     ] 2025-04-25 08:37:59,576 | ERROR    | singer_sdk._singerlib.encoding._simple | Unable to parse: cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.579035Z [info     ] ++++++++++++++++++++++++++++++++++++++++++++++++++++++ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.579325Z [info     ] Traceback (most recent call last): cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.579601Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/encoding/_simple.py", line 215, in deserialize_json cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.579856Z [info     ]     return deserialize_json(line) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.580124Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.580378Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/json.py", line 38, in deserialize_json cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.580638Z [info     ]     return json.loads(  # type: ignore[no-any-return] cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.580895Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.581177Z [info     ]   File "/usr/local/lib/python3.11/json/__init__.py", line 359, in loads cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.581489Z [info     ]     return cls(**kw).decode(s) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.581746Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.582039Z [info     ]   File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.582298Z [info     ]     obj, end = self.raw_decode(s, idx=_w(s, 0).end()) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.582549Z [info     ]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.583055Z [info     ]   File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.583313Z [info     ]     raise JSONDecodeError("Expecting value", s, err.value) from None cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.583576Z [info     ] json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.583977Z [info     ] Traceback (most recent call last): cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.584254Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/encoding/_simple.py", line 215, in deserialize_json cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.584500Z [info     ]     return deserialize_json(line) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.584773Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.585067Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/json.py", line 38, in deserialize_json cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.585339Z [info     ]     return json.loads(  # type: ignore[no-any-return] cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.585634Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.585911Z [info     ]   File "/usr/local/lib/python3.11/json/__init__.py", line 359, in loads cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.586172Z [info     ]     return cls(**kw).decode(s) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.586438Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.586693Z [info     ]   File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.587069Z [info     ]     obj, end = self.raw_decode(s, idx=_w(s, 0).end()) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.587547Z [info     ]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.588087Z [info     ]   File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.588351Z [info     ]     raise JSONDecodeError("Expecting value", s, err.value) from None cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.588727Z [info     ] json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.589483Z [info     ]                                cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.589748Z [info     ] The above exception was the direct cause of the following exception: cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.590130Z [info     ]                                cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.590371Z [info     ] Traceback (most recent call last): cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.590689Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/bin/target-s3-parquet", line 8, in <module> cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.590962Z [info     ]     sys.exit(TargetS3Parquet.cli()) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.591408Z [info     ]              ^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.591812Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/click/core.py", line 1161, in __call__ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.592074Z [info     ]     return self.main(*args, **kwargs) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.592437Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.592999Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/click/core.py", line 1082, in main cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.593329Z [info     ]     rv = self.invoke(ctx)      cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.593619Z [info     ]          ^^^^^^^^^^^^^^^^      cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.594183Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/plugin_base.py", line 92, in invoke cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.594463Z [info     ]     return super().invoke(ctx) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.594781Z [info     ]            ^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.595205Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/click/core.py", line 1443, in invoke cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.596042Z [info     ]     return ctx.invoke(self.callback, **ctx.params) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.596334Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.596593Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/click/core.py", line 788, in invoke cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.596880Z [info     ]     return __callback(*args, **kwargs) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.597151Z [info     ]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.597396Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/target_base.py", line 586, in invoke cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.597649Z [info     ]     target.listen(file_input)  cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.597928Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/encoding/_base.py", line 53, in listen cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.598204Z [info     ]     self._process_lines(file_input or self.default_input) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.598463Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/target_base.py", line 305, in _process_lines cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.598733Z [info     ]     counter = super()._process_lines(file_input) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.599242Z [info     ]               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.599555Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/encoding/_base.py", line 75, in _process_lines cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.599824Z [info     ]     line_dict = self.deserialize_json(line) cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.600121Z [info     ]                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.600382Z [info     ]   File "/meltano/.meltano/loaders/target-s3-parquet/venv/lib/python3.11/site-packages/singer_sdk/_singerlib/encoding/_simple.py", line 219, in deserialize_json cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.600655Z [info     ]     raise InvalidInputLine(msg) from exc cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.600906Z [info     ] singer_sdk._singerlib.exceptions.InvalidInputLine: Unable to parse line as JSON: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:37:59.601164Z [info     ]                                cmd_type=loader name=target-s3-parquet run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:38:00.158261Z [error    ] Extraction failed              code=1 message=          Invalid authentication credentials were provided. name=meltano run_id=rund_id state_id=state_id
2025-04-25T08:38:00.158933Z [error    ] Loading failed                 code=1 message=(see above) name=meltano run_id=rund_id state_id=state_id
2025-04-25T08:38:00.159770Z [info     ] ELT could not be completed: Extractor and loader failed. cmd_type=elt name=meltano run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:38:00.159996Z [info     ] For more detailed log messages re-run the command using 'meltano --log-level=debug ...' CLI flag. cmd_type=elt name=meltano run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:38:00.160184Z [info     ] Note that you can also check the generated log file at '/meltano/.meltano/logs/elt/state_id/rund_id/elt.log'. cmd_type=elt name=meltano run_id=rund_id state_id=state_id stdio=stderr
2025-04-25T08:38:00.160390Z [info     ] For more information on debugging and logging: <https://docs.meltano.com/reference/command-line-interface#debugging> cmd_type=elt name=meltano run_id=rund_id state_id=state_id stdio=stderr
Need help fixing this problem? Visit <http://melta.no/> for troubleshooting steps, or to
join our friendly Slack community.

ELT could not be completed: Extractor and loader failed.
For more detailed log messages re-run the command using 'meltano --log-level=debug ...' CLI flag.
Note that you can also check the generated log file at '/meltano/.meltano/logs/elt/state_id/rund_id/elt.log'.
For more information on debugging and logging: <https://docs.meltano.com/reference/command-line-interface#debugging>