# What changed in @confluentinc/kafka-javascript

> 58 changes in @confluentinc/kafka-javascript 1 from its official release notes, upgrade guides and advisories: 2 breaking, 1 security, 22 new APIs and options. Each one cited. Sources checked 2026-11-15. HTML: https://unstale.sh/npm/@confluentinc/kafka-javascript/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @confluentinc/kafka-javascript 1

### Breaking changes

- Promisified producer.connect() and consumer.connect() retry transient connection errors by default, with retry.retries defaulting to 5; set it to 0 for single-attempt behavior. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- send() rejects an invalid topic or messages list before serialization, and serializer failures are reported as KeySerializationError or ValueSerializationError with the original error as cause. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)

### Security

- Fix security vulnerabilities in dependencies. (1.8.2) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1), [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.2)

### New APIs and options

- Support was added for saving the Azure key version with a DEK. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Producer, consumer, and admin clients can fetch the id of their connected cluster through the node-rdkafka and promisified APIs; this is experimental. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Decimal was added as a CEL function. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Support was added for inline validation rules. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental producer property accepts a serializer builder that is built while connecting and applied to keys. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental producer property accepts a serializer builder that is built while connecting and applied to values. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Support was added for generating a JSON Schema title from a JSON payload. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental builder was added for integrating an Avro deserializer with the promisified Kafka clients. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental builder was added for integrating an Avro serializer with the promisified Kafka clients. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental builder was added for integrating a JSON deserializer with the promisified Kafka clients. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental builder was added for integrating a JSON serializer with the promisified Kafka clients. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental builder was added for integrating a Protobuf deserializer with the promisified Kafka clients. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An experimental builder was added for integrating a Protobuf serializer with the promisified Kafka clients. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Timestamp was added as a CEL function. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Variant was added as a CEL function. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Adds support for union-of-pools/auto-pool mapping for schema registry. (1.10.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.0)
- Adds AssociatedNameStrategy. (1.9.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.0)
- Adds enableAt to RuleSet. (1.9.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.0)
- Exported from the schemaregistry index.ts, making CelExecutor available to consumers. (1.8.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.0)
- Exported from the schemaregistry index.ts, making CelFieldExecutor available to consumers. (1.8.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.0)
- Batch size is configurable through this property. (1.7.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.7.0)
- Cache size is configurable through this property. (1.7.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.7.0)

### Behavior and default changes

- The default builder strategy lazily resolves the Kafka cluster id on first subject lookup; an explicit cluster id takes precedence, and concurrent resolutions share one call. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Clients pass context when making KEK calls to the DEK Registry. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Deserializer failures are attached to the message as deserializedKey.error or deserializedValue.error, so the record is still delivered. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- The wait between connection attempts grows exponentially from retry.initialRetryTime up to retry.maxRetryTime with jitter; these settings also map to librdkafka reconnect backoff properties. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Reporting for JSON Schema validation was slightly enhanced. (1.8.2) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.2)

### Fixes and other changes

- Concurrent connect() calls on the same client share a single in-flight connection attempt instead of the second call throwing. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Prebuilt binaries are now available for linux-s390x with both glibc and musl. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- The property is now mapped from retry.maxRetryTime so librdkafka reconnection attempts use the same backoff. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- The property is now mapped from retry.initialRetryTime so librdkafka reconnection attempts use the same backoff. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- An explicitly configured cluster id takes precedence over lazy cluster-id resolution by the default builder strategy. (1.11.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.11.0)
- Prevents a crash if an admin operation fails before its result event is received. (1.10.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.1)
- A message is stored as the last consumed offset only after processing eachMessage or resolving offsets in eachBatch, when it is stored for commitment. (1.10.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.1)
- References librdkafka 2.15.1; see its release notes for details. (1.10.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.1)
- HTTP status is preserved on Schema Registry error responses. (1.10.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.1)
- Avoids a duplicate message when seeking back to reprocess a message or batch. (1.10.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.1)
- Handles non-HTTP errors during retries. (1.10.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.10.0)
- Correct the TypeScript MemberDescription shape: assignment and targetAssignment wrap a topicPartitions array, while memberAssignment and memberMetadata are nullable. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Correct FetchOffsetsPartition.error to LibrdKafkaError | null, matching the runtime, which always populates the field. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Correct its TypeScript return type to Promise<Array<ITopicMetadata>>. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Fix error callback passing and pass an object to the logger instead of a string. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Resolve the IHeaders import for installed clients. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Handle anyOf and allOf in JSON transforms. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Handle missing Protobuf message index bytes during deserialization. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Serde constructors now preserve a custom subjectNameStrategy. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Fix the broken types path so TypeScript consumers get types. (1.9.1) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.9.1)
- Avro arrays are processed sequentially to avoid race conditions. (1.8.2) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.2)
- NULL checks prevent segfaults when Kafka metadata contains NULL values during broker restarts. (1.8.2) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.2)
- Prevents fetch failures when max batch size is set or uses its default and the consumption rate is low. (1.8.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.0)
- Ensures the maximum message cache size does not reach zero by keeping at least one message per worker after rounding up. (1.8.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.0)
- The rule failure message was improved. (1.8.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.8.0)
- Fixes a case where the at-least-once guarantee was not ensured when seeking one partition while messages were being fetched for other partitions. (1.7.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.7.0)
- Prevents returning a negative lag when there is no cached offset for the HWM. (1.7.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.7.0)
- The statistics callback is now available with the promisified API for all client types. (1.7.0) — [release notes](https://github.com/confluentinc/confluent-kafka-javascript/releases/tag/v1.7.0)
