diff --git a/botocore/parsers.py b/botocore/parsers.py index f9e4d13354..eff11a7329 100644 --- a/botocore/parsers.py +++ b/botocore/parsers.py @@ -1316,12 +1316,11 @@ def _inject_error_code(self, error, response): code = response['headers']['x-amzn-errortype'] elif 'code' in body or 'Code' in body: code = body.get('code', body.get('Code', '')) - if code is not None: - if ':' in code: - code = code.split(':', 1)[0] - if '#' in code: - code = code.rsplit('#', 1)[1] - error['Error']['Code'] = code + if code is None: + return + if isinstance(code, str): + code = code.split(':', 1)[0].rsplit('#', 1)[-1] + error['Error']['Code'] = code def _handle_boolean(self, shape, value): return ensure_boolean(value) diff --git a/testing.py b/testing.py new file mode 100644 index 0000000000..e69de29bb2