@smithy/core breaking changes
Every breaking API change we have recorded in @smithy/core on npm: 68 breaking changes in 18 versions. Below are its newest 6 versions, removals and renames first, each with its source.
Newest change November 3, 2026

On this page
3.38.0
- Signature changed
protocols:getHttpHandlerExtensionConfiguration
Was const getHttpHandlerExtensionConfiguration: <HandlerConfig extends {logger?: Logger;}>(runtimeConfig: HttpHandlerExtensionConfigType<HandlerConfig> & {logger?: Logger;}) => {setHttpHandler(handler: HttpHandler<HandlerConfig>): void... npmjs.com
3.37.0
- Removed
cbor:SmithyRpcV2CborProtocol.constructor
new SmithyRpcV2CborProtocol() was removed in @smithy/core 3.37.0 npmjs.com - Removed
protocols:SmithyRpcV2JsonProtocol.constructor
new SmithyRpcV2JsonProtocol() was removed in @smithy/core 3.37.0 npmjs.com - Behavior changed
Responses with a 2xx status other than 200 (such as 201 or 204) are now raised as errors by the Smithy RPC v2 JSON and CBOR client protocols. Code that relied on those statuses succeeding must handle the error instead. github.com - Signature changed
cbor:SmithyRpcV2CborProtocol
Was class SmithyRpcV2CborProtocol extends RpcProtocol; now class SmithyRpcV2CborProtocol extends AbstractRpcV2Protocol. npmjs.com - Signature changed
protocols:SmithyRpcV2JsonProtocol
Was class SmithyRpcV2JsonProtocol extends RpcProtocol; now class SmithyRpcV2JsonProtocol extends AbstractRpcV2Protocol. npmjs.com
3.35.0
- Behavior changed
Responses with status code 500 from CBOR services are now classified as server faults. Code that handled these responses as a different error category may need to be updated. github.com - Behavior changed
Error identification for CBOR responses no longer falls back to the code property in the response body. Code that relied on that fallback to identify errors must check for other error fields. github.com - Signature changed
client:Client.send
Was send<InputType extends ClientInput, OutputType extends ClientOutput>(command: Command<ClientInput, InputType, ClientOutput, OutputType, SmithyResolvedConfiguration<HandlerOptions>>, options: HandlerOptions, cb: (err: any, data?... npmjs.com
3.33.1
- Signature changed
client:getDefaultClientConfiguration
Was const getDefaultClientConfiguration: (runtimeConfig: DefaultExtensionRuntimeConfigType) => {addChecksumAlgorithm(algo: import("@smithy/types").ChecksumAlgorithm): void; checksumAlgorithms()... npmjs.com - Signature changed
event-streams:EventStreamSerde.deserializeEventStream
Was deserializeEventStream({response, responseSchema, initialResponseContainer}: {response: IHttpResponse; responseSchema: NormalizedSchema; initialResponseContainer?: any;}): Promise<AsyncIterable<{[key: string]: any; $unknown?... npmjs.com - Signature changed
event-streams:EventStreamSerde.serializeEventStream
Was serializeEventStream({eventStream, requestSchema, initialRequest}: {eventStream: AsyncIterable<any>; requestSchema: NormalizedSchema; initialRequest?: any;}): Promise<IHttpRequest["body"] | Uint8Array>; now... npmjs.com - Signature changed
retry:Retry.modifiedCostType
Was static modifiedCostType(): "TRANSIENT" | "THROTTLING"; now static modifiedCostType(): "THROTTLING" | "TRANSIENT". npmjs.com - Signature changed
retry:Retry.throttlingDelay
Was static throttlingDelay(): 1000 | 500; now static throttlingDelay(): 500 | 1000. npmjs.com - Signature changed
schema:TypeRegistry.find
Was find(predicate: (schema: ISchema) => boolean): number | "unit" | import("@smithy/types").StaticSimpleSchema | import("@smithy/types").StaticListSchema | import("@smithy/types").StaticMapSchema |... npmjs.com - Signature changed
serde:expectInt
Was const expectInt: (value: any) => number | undefined; now const expectInt: typeof expectLong. npmjs.com - Signature changed
serde:handleFloat
Was const handleFloat: (value: string | number) => number | undefined; now const handleFloat: typeof limitedParseDouble. npmjs.com - Signature changed
serde:limitedParseFloat
Was const limitedParseFloat: (value: string | number) => number | undefined; now const limitedParseFloat: typeof limitedParseDouble. npmjs.com - Signature changed
serde:strictParseFloat
Was const strictParseFloat: (value: string | number) => number | undefined; now const strictParseFloat: typeof strictParseDouble. npmjs.com
And 1 more in this version.
3.33.0
- Removed
protocols:HttpHandlerExtensionConfigType.httpHandler
HttpHandlerExtensionConfigType.httpHandler was removed in @smithy/core 3.33.0 npmjs.com - Signature changed
protocols:getHttpHandlerExtensionConfiguration
Was const getHttpHandlerExtensionConfiguration: <HandlerConfig extends object = {}>(runtimeConfig: HttpHandlerExtensionConfigType<HandlerConfig>) => {setHttpHandler(handler: HttpHandler<HandlerConfig>): void; httpHandler()... npmjs.com - Signature changed
protocols:HttpHandlerExtensionConfigType
Was type HttpHandlerExtensionConfigType<HandlerConfig extends object = {}> = Partial<{httpHandler: HttpHandler<HandlerConfig>;}>; now type HttpHandlerExtensionConfigType<HandlerConfig extends object = {}> = Partial<{requestHandler... npmjs.com
3.31.1
- Removed
schema:NormalizedSchema.structIteratorCbor
NormalizedSchema.structIteratorCbor was removed in @smithy/core 3.31.1 npmjs.com - Signature changed
cbor:CborCodec.createDeserializer
Was createDeserializer(): CborShapeDeserializer; now createDeserializer(): CborShapeDeserializer2. npmjs.com - Signature changed
cbor:CborCodec.createSerializer
Was createSerializer(): CborShapeSerializer; now createSerializer(): CborShapeSerializer2. npmjs.com - Signature changed
cbor:SmithyRpcV2CborProtocol.deserializer
Was protected deserializer: import(".").CborShapeDeserializer; now protected deserializer: import(".").CborShapeDeserializer2. npmjs.com - Signature changed
cbor:SmithyRpcV2CborProtocol.serializer
Was protected serializer: import(".").CborShapeSerializer; now protected serializer: import(".").CborShapeSerializer2. npmjs.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp