-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🎉 Source Snapchat Marketing - enable default availability strategy #22808
🎉 Source Snapchat Marketing - enable default availability strategy #22808
Conversation
/test connector=connectors/source-snapchat-marketing
Build FailedTest summary info:
|
/test connector=connectors/source-snapchat-marketing
Build PassedTest summary info:
|
/test connector=connectors/source-snapchat-marketing
Build PassedTest summary info:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good - I added a commit removing custom error handling that shouldn't be necessary anymore.
In future PRs, if you could check against this doc for anything to remove when implementing availabilitystrategy, that'd be great! I also added a note to the issue for each one that has an entry in that list.
Airbyte Code Coverage
|
…ng-availability-strategy' into midavadim/21787-snapchat-marketing-availability-strategy
@@ -219,13 +214,6 @@ def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapp | |||
raise SnapchatMarketingException(error_text) | |||
yield resp.get(self.response_item_name) | |||
|
|||
def should_retry(self, response: requests.Response) -> bool: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I investigated the reasons for this custom error handling. There was a stream which was failing for one specifc slice, becuase of permissions error. that's why it handles 403 error. So in order to not fail the whole sync, we just skip one particular slice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know why it was failing for one specific slice? That would indeed not be covered by the availability strategy, but I'm curious as to why it happened
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
related PR: #20865
related issue: https://github.com/airbytehq/oncall/issues/1067
The problem happened with 'segments' stream for one of 'adaccount' in its slice.
As far as I understand snapchat credentials could have access to a couple of snapchat organization/adaccounts and for one of such accounts there was no permission access to 'segments' data.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will leave this up to you as per my comment in the PR itself!
@erohmensing |
@midavadim thanks, responded! Do you know why that was the case? If its legit, I am fine leaving the error handling for now, but I wouldn't expect to run into that for one stream slice so am wondering how the case occurred |
related PR: #20865 The problem happened with 'segments' stream for one of 'adaccount' in its slice. As far as I understand snapchat credentials could have access to a couple of snapchat organization/adaccounts and for one of such accounts there was no permission access to 'segments' data. |
Looking at that issue and the logs for the broken connection, I don't see any indication why it would only be breaking for that one slice, just that that slice was the first one in the list. (I don't see any indication for example that they had access to the segments stream for another adaccount for example) Since this is extra error handling, it doesn't hurt us to have it in, but I don't believe it's doing anything. If you feel strongly about it, we can leave it in for now and try removing it later on its own after comparing log messages to see if both cases still happen independently of each other. |
@@ -219,13 +214,6 @@ def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapp | |||
raise SnapchatMarketingException(error_text) | |||
yield resp.get(self.response_item_name) | |||
|
|||
def should_retry(self, response: requests.Response) -> bool: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will leave this up to you as per my comment in the PR itself!
…ng-availability-strategy' into midavadim/21787-snapchat-marketing-availability-strategy
/publish connector=connectors/source-snapchat-marketing
if you have connectors that successfully published but failed definition generation, follow step 4 here |
What
Describe what the change is solving
It helps to add screenshots if it affects the frontend.
How
Describe the solution
Recommended reading order
x.java
y.python
🚨 User Impact 🚨
Are there any breaking changes? What is the end result perceived by the user? If yes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.
Pre-merge Checklist
Expand the relevant checklist and delete the others.
New Connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampledocs/integrations/README.md
airbyte-integrations/builds.md
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereUpdating a connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereConnector Generator
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changes