-
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 Shopify: Retry requests that return HTTP 500 #50976
base: master
Are you sure you want to change the base?
🚨🐛 Source Shopify: Retry requests that return HTTP 500 #50976
Conversation
@keiththompson is attempting to deploy a commit to the Airbyte Growth Team on Vercel. A member of the Team first needs to authorize it. |
5482b14
to
282b658
Compare
282b658
to
af12b19
Compare
c9ae9ab
to
c86509e
Compare
Hello @keiththompson, I asked the team to review your contribution. Since it involves changes to a widely used connector, it may take some time to ensure that the change is the best option. If you need any updates on the status of your contribution, feel free to message me on Slack. |
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'm fine with the change, but we've seen unpredictable api behavior in the past, for some entities were not available alongside the HTTP-500 (which is apparently incorrectly provided error status code, because the HTTP-404 was expected).
This is hard to predict what would it be for the rest of the Customers, but i'm pretty sure by far, this collisions might have been already resolved by Shopify.
Let's merge it.
@marcosmarxm I believe we need the approval here to run the required CI checks. Could you please take a look? |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Running tests @keiththompson and @bazarnov let's wait. |
It seems like there is a unit test failure related to this change. Can we fix that? |
I think these are passing now. |
What
I've observed the orders stream getting a HTTP 500 and marking the stream as complete. I would have expected this to either retry or fail. Please let me know if this was a conscious design choice. In my mind, a sync succeeding should mean all of the data is fully in place.
From looking at the implementation, it looks as though there is an expectation of some retries, but with the
ShopifyNonRetryableErrors
class configured as it is, none of these will happen on HTTP 500.In my case running the sync again did fill in the gaps, which means the issue was transient and therefore, retryable.
Logs
How
Removed HTTP 500 from the list of non retryable errors.
Review guide
airbyte-integrations/connectors/source-shopify/source_shopify/utils.py
airbyte-integrations/connectors/source-shopify/source_shopify/streams/base_streams.py
(get_error_handler func)User Impact
HTTP 500 will Retry rather than be ignored.
Can this PR be safely reverted and rolled back?