feat(common): Client with conditional err handling#2247
Merged
Conversation
This was referenced Oct 31, 2025
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Oct 31, 2025
2d13aed to
8a46341
Compare
2b85a05 to
3b3ab66
Compare
8a46341 to
1863886
Compare
3b3ab66 to
259d000
Compare
1863886 to
420d747
Compare
259d000 to
01207eb
Compare
anushat05
approved these changes
Nov 4, 2025
01207eb to
d252220
Compare
420d747 to
aec7c2b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Current behaviour
When response status code is out of 2xx range we invoke ErrorHandler and operation returns golang
error.Addition
The condition of what should be treated as "critical error" is for the connector implementation.
The change only enhances and fallbacks for current behaviour if no custom
ShouldHandleErrorcallback is provided.For example:
Salesforce composite API may return 400 Bad Request with schema which we should parse in order to form
BatchWriteResult. It is still a "happy path" from Ampersand point of view, because we populate data structure with errors, set status failure or partial failure, etc.If provider treats it as "error" doesn't mean we do.
Note: there is
ResponseHandlerwhich altershttp.Responsebut I prefer to keep it immutable, especially for the case I described.