Skip to content

Commit c860bd5

Browse files
authored
fix(ec2-metadata-service): preserve statusCode when rethrowing errors for IMDS requests (#7564)
* fix(ec2-metadata-service): preserve statusCode when rethrowing errors * fix(ec2-metadata-service): httpStatusCode bubbled for better consistency with service errors
1 parent 0d8b7ea commit c860bd5

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

packages/ec2-metadata-service/src/MetadataService.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,17 @@ export class MetadataService {
7777
// handle response.body as stream
7878
return sdkStreamMixin(response.body).transformToString();
7979
} else {
80-
throw new Error(`Request failed with status code ${response.statusCode}`);
80+
throw Object.assign(new Error(`Request failed with status code ${response.statusCode}`), {
81+
$metadata: { httpStatusCode: response.statusCode },
82+
});
8183
}
8284
} catch (error) {
83-
throw new Error(`Error making request to the metadata service: ${error}`);
85+
const wrappedError = new Error(`Error making request to the metadata service: ${error}`);
86+
const { $metadata } = error as any;
87+
if ($metadata?.httpStatusCode !== undefined) {
88+
Object.assign(wrappedError, { $metadata });
89+
}
90+
throw wrappedError;
8491
}
8592
}
8693

0 commit comments

Comments
 (0)