Skip to content

Commit ea71c1d

Browse files
Merge pull request #164 from skyflowapi/SK-1900-improve-debugging-errors-in-connections
SK-1900 Improve debugging errors in connections
2 parents ad0215a + 6b8c27d commit ea71c1d

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/main/java/com/skyflow/errors/SkyflowException.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,18 @@ public SkyflowException(int httpCode, Throwable cause, Map<String, List<String>>
4141
super(cause);
4242
this.httpCode = httpCode;
4343
setRequestId(responseHeaders);
44-
setResponseBody(responseBody);
44+
setResponseBody(responseBody, responseHeaders);
4545
}
4646

47-
private void setResponseBody(String responseBody) {
47+
private void setResponseBody(String responseBody, Map<String, List<String>> responseHeaders) {
4848
try {
4949
if (responseBody != null) {
5050
this.responseBody = JsonParser.parseString(responseBody).getAsJsonObject();
5151
if (this.responseBody.get("error") != null) {
5252
setGrpcCode();
5353
setHttpStatus();
5454
setMessage();
55-
setDetails();
55+
setDetails(responseHeaders);
5656
}
5757
}
5858
} catch (JsonSyntaxException e) {
@@ -86,9 +86,19 @@ private void setHttpStatus() {
8686
this.httpStatus = statusElement == null ? null : statusElement.getAsString();
8787
}
8888

89-
private void setDetails() {
89+
private void setDetails(Map<String, List<String>> responseHeaders) {
9090
JsonElement detailsElement = ((JsonObject) responseBody.get("error")).get("details");
91-
this.details = detailsElement == null ? null : detailsElement.getAsJsonArray();
91+
List<String> errorFromClientHeader = responseHeaders.get("error-from-client");
92+
if (detailsElement != null) {
93+
this.details = detailsElement.getAsJsonArray();
94+
}
95+
if (errorFromClientHeader != null) {
96+
this.details = this.details == null ? new JsonArray() : this.details;
97+
String errorFromClient = errorFromClientHeader.get(0);
98+
JsonObject detailObject = new JsonObject();
99+
detailObject.addProperty("errorFromClient", errorFromClient);
100+
this.details.add(detailObject);
101+
}
92102
}
93103

94104
public int getHttpCode() {

0 commit comments

Comments
 (0)