Skip to content

Commit f722307

Browse files
committed
to be merged: log kms error from json message
1 parent 7249e0b commit f722307

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

kms.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,20 @@ func (c *Client) kmsDecrypt(url string, requestBody []byte) ([]byte, error) {
160160
}
161161

162162
if statusCode != 200 {
163-
return nil, fmt.Errorf("unexpected response code from KMS: %v", statusCode)
163+
// On error, kms respond with error message in JSON object.
164+
type Exception struct {
165+
RemoteException struct {
166+
Message string `json:"message"`
167+
}
168+
}
169+
var kmsException Exception
170+
if err = json.Unmarshal(responseBody, &kmsException); err == nil && kmsException.RemoteException.Message != "" {
171+
errorMessage := kmsException.RemoteException.Message
172+
err = fmt.Errorf("unexpected response code from KMS: %v: %v", statusCode, errorMessage)
173+
} else {
174+
err = fmt.Errorf("unexpected response code from KMS: %v", statusCode)
175+
}
176+
return nil, err
164177
}
165178

166179
type KmsRespose struct {

0 commit comments

Comments
 (0)