Tendrex Reporting
04/06/2025, 10:55 PMAirbyteConnectorFailedError: Connector failed.
Please review the log file for more information.
Connector Name: 'source-google-sheets'
Exit Code: 1
Log file: /tmp/airbyte/logs/source-google-sheets/source-google-sheets-log-JR6MC6ZE6.log
1. In the future, I’d like to implement a similar process, but only load data starting from row 7, since my customer uses the first few rows for non-tabular content like logos and details. Is that currently possible? From what I can tell in the documentation, it seems we can only provide the spreadsheet link without any additional parameters.Travis Niemczyk
04/10/2025, 5:45 PMKrishna
04/16/2025, 5:32 PM>> dest = ab.get_destination('destination-snowflake-cortex')Writing PyAirbyte logs to file: /tmp/airbyte/logs/2025-04-16/airbyte-log-JRZSR7KR1.log Writing
destination-snowflake-cortex
logs to file: /tmp/airbyte/logs/destination-snowflake-cortex/destination-snowflake-cortex-log-JRZSR7KRM.log
>> dest.check()Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/ssm-user/airbyte/lib/python3.10/site-packages/airbyte/_connector_base.py", line 311, in check with as_temp_files([self._config]) as [config_file]: File "/home/ssm-user/airbyte/lib/python3.10/site-packages/airbyte/_connector_base.py", line 136, in _config raise exc.AirbyteConnectorConfigurationMissingError( airbyte.exceptions.AirbyteConnectorConfigurationMissingError: Connector is missing configuration. (AirbyteConnectorConfigurationMissingError) ------------------------------------------------------------ AirbyteConnectorConfigurationMissingError: Connector is missing configuration. Provide via get_destination() or set_config() Connector Name: 'destination-snowflake-cortex'
>>
Travis Niemczyk
04/23/2025, 8:52 PM401 Client Error
but the credentials Im using are the same as a working pipeline thats currently running with a different platform. In the docs it calls for crazy full permissions on everything, and im hoping that its not mandatory since theres pages and pages of permissions that would need to be given just to test this. Any thoughts? Im also using "object_types": ["transactions"],
to limit to just 1 object
Failure Reason: "HTTPError('401 Client Error: Unauthorized for url: https://<realm>.suitetalk.api.netsuite.com/services/rest/record/v1/transactions?limit=1')"
pat parillo
04/25/2025, 5:54 PMBen Wilen
04/25/2025, 6:06 PMread_records()
. Is this expected behavior? cc @AJ SteersTravis Niemczyk
05/05/2025, 7:37 PMTypeError: Can't instantiate abstract class SourceS3StreamReader with abstract method upload
An error occurred during check: Connector check failed. (AirbyteConnectorCheckFailedError)
------------------------------------------------------------
AirbyteConnectorCheckFailedError: Connector check failed.
Please review the log file for more information.
Connector Name: 'source-s3'
------------------------------------------------------------
Caused by: Connector failed. (AirbyteConnectorFailedError)
------------------------------------------------------------
AirbyteConnectorFailedError: Connector failed.
Please review the log file for more information.
Connector Name: 'source-s3'
Exit Code: 1
The log file it mentions is always blank
airbyte==0.24.2
airbyte-api==0.52.2
airbyte-cdk==6.48.6
airbyte_protocol_models_dataclasses==0.15.0
airbyte_protocol_models_pdv2==0.13.1
ab.get_source('source-s3')
is installing v4.13.5
Mauricio Pérez
05/16/2025, 4:22 PMsource-airtable
connector using pyairbyte
, but I’m running into an issue. Here are the details:
• Airbyte version: 0.24.2
• Python version: 3.10.17
• Error Message:
ERROR: Error starting the sync. This could be due to an invalid configuration or catalog.
Please contact Support for assistance.
Error: Validation against json schema defined in declarative_component_schema.yaml schema failed
AirbyteConnectorMissingSpecError: Connector did not return a spec.
Please review the log file for more information.
Connector Name: 'source-airtable'
This is the snippet it's throwing the issue:
import airbyte as ab
airtable = ab.get_source(
"source-airtable",
)
credentials = {
"credentials": {
"auth_method": "api_key",
"api_key": "pat"
}
}
airtable.set_config(config=credentials)
AJ Steers (Airbyte)
05/16/2025, 7:41 PMSource
objects now support the following methods:
• set_cursor_key()
- Overrides the cursor key for one stream.
• set_cursor_keys()
- Overrides the cursor key for any number of streams.
• set_primary_key()
- Overrides the primary key for one stream.
• set_primary_keys()
- Overrides the primary key for any number of stream.
See the updated API docs for more information.
Thanks to @Krishna for his help testing the new feature, and thanks also to @Mateusz Czarkowski for "upvoting" the issue here in the channel for our prioritization. 🙏Rad Extrem
05/19/2025, 2:40 AMget_source
or get_destination
?
Also, would using a local_executable
be a better approach for this use case? If so, are there any established steps or best practices for building such executables for connectors?Ben Wilen
05/19/2025, 5:14 PMSnowflakeCache
and currently am running into this auth error with a 5 hour sync:
sqlalchemy.exc.ProgrammingError: (snowflake.connector.errors.ProgrammingError) 390114 (08001): None: Authentication token has expired. The user must authenticate again.
(Background on this error at: <https://sqlalche.me/e/20/f405>)
Assuming it's because snowflake has a default timeout of 4 hours, does anyone have a fix for this? I don't see a way via PyAirbyte to specify "client_session_keep_alive": True
Ben Wilen
05/27/2025, 7:57 PMtable_name=table_prefix + stream_name
as the table name here. But SqlProcessorBase uses a normalizer in get_sql_table_name()
. As a result, if the stream name is not normalized in the state message (which I believe it isn't), the table_name we are actually inputting into the state table is not always the same as the actual table name. Is that intended (or am I misunderstanding the code)?Jay Stevens
06/05/2025, 6:39 PMMotherDuckCache
- but I don't think that the way incremental sync is setup will work unless I use a different cache for each account. Does that sound right?Nick Clarke
06/12/2025, 11:52 PMsource-appsflyer
. I am trying to test my changes as part of the service we have that uses pyairbyte in a docker container to read from this source and write back to bigquery as a destination. I've checked out https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appsflyer and made my relevant changes there. I am now trying to test the changes in my service that uses pyairbyte with the following test code:
import airbyte as ab
import json
CONFIG_PATH = "configs/appsflyer_android.json"
with open(CONFIG_PATH, "r") as f:
source_config = json.load(f)
## /app/source_appsflyer/ is my local clone of airbytehq/airbyte/ mounting only the relevant appsflyer connector folder in my docker container.
source = ab.get_source("source-appsflyer", config=source_config, local_executable="/app/source_appsflyer/source_appsflyer/run.py")
source.select_streams(["retargeting_geo_report"])
all_streams = source.get_selected_streams()
read_result = source.read()
This fails, because if I pip install -r requirements.txt
from /app/source_appsflyer
I get package collisions for import airbyte
between airebyte and pyairbyte.
I then tried poetry install --with dev
which places an executable in /root/.cache/pypoetry/virtualenvs/source-appsflyer-OcVLBknA-py3.10/bin/source-appsflyer
which I then point to with
source = ab.get_source("source-appsflyer", config=source_config, local_executable="/root/.cache/pypoetry/virtualenvs/source-appsflyer-OcVLBknA-py3.10/bin/source-appsflyer")
But this appears to install the version from PyPI. When I make local changes to the package and do a fresh install, those changes do not appear in the lib
code under ``/root/.cache/pypoetry/virtualenvs/source-appsflyer-OcVLBknA-py3.10``
I also tried poetry build
from /app/source_appsflyer/
and then pointing source = ab.get_source("source-appsflyer", config=source_config, local_executable="/app/source_appsflyer/dist/name_of_the_whl_here")
This fails.
What is the proper way to do this? How can I point to an local executable or path that pyairbyte understands?Andrew Lytle
06/13/2025, 2:48 PMSlackbot
06/20/2025, 7:14 PMSlackbot
06/20/2025, 7:15 PMSlackbot
06/20/2025, 7:17 PMAJ Steers
06/20/2025, 7:20 PMNick Clarke
06/23/2025, 9:56 PMIdan Moradov
06/25/2025, 9:49 AMAlioune Amoussou
06/25/2025, 3:38 PMkey-pair authentication to Snowflake
when I came across this one PR.
It seems to handle authentication when the key is in a file but does not allow to pass the key directly as a string to SnowflakeConfig
in an attribute.
I was wondering what you think of this feature ? And whether, to implement my functionality, I should start from the branch of the existing PR or whether I should start from master.
There are several approaches I can take:
- Add a private_key attribute in SnowflakeConfig
here
- Add a private_key attribute and validation function in SnowflakeConfig
(ex: password can't be filled if private_key is...) here
- Abstract this logic into a Credential
class, which would contain all authentication attributes, handle validation and generate part of the configuration passed here.Yohann Jardin
06/27/2025, 1:01 PM_airbyte_state
and the state of a stream is missing from the table.
I shared the details on github.
It has a minimal impact for us, and we will soon not face it anymore.
I'm sharing it there in case other people face this in the future. We're not planning try to tackle it.
The fix looks easy, but testing against the different caches and their support of transaction or upsert doesn't seem trivial 😕Ben Wilen
06/27/2025, 5:18 PMAJ Steers (Airbyte)
06/28/2025, 7:36 PMNick Clarke
06/30/2025, 10:11 PMPyAirbyteNameNormalizationError
when I attempt to run a very simple example with the mixpanel connector, which seems like it may be an issue with the source? Please see https://gist.github.com/nickolasclarke/dd858ea3b4464e472f5a02ffbd4ce586 for more details.Nick Clarke
07/03/2025, 10:12 PMYohann Jardin
07/11/2025, 8:09 PMYohann Jardin
07/11/2025, 8:28 PMMauricio Pérez
07/18/2025, 6:45 PMsource-pipedrive
with Python 3.11 and running into this error:
Here’s the snippet triggering the error:Failure Reason: Encountered an error while discovering streams. Error: mutable default <class 'airbyte_cdk.sources.declarative.decoders.json_decoder.JsonDecoder'> for field decoder is not allowed: use default_factory
import airbyte as ab
pipedrive_config = {
"api_token": "api_token",
"replication_start_date": "2017-01-25 00:00:00Z"
}
pipedrive = ab.get_source("source-pipedrive", pip_url="airbyte-source-pipedrive==2.3.7")
pipedrive.set_config(pipedrive_config)
pipedrive.check()
I suspect this might be related to a CDK version incompatibility with Python 3.11. Has anyone found a workaround or a compatible version that resolves this?