## RabbitMQ 4.2.5

RabbitMQ `4.2.5` is a maintenance release in the `4.2.x` [release series](https://www.rabbitmq.com/release-information).

It is **strongly recommended** that you read [4.2.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.2.0)
in detail if upgrading from a version prior to `4.2.0`.

### Minimum Supported Erlang Version

[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/docs/which-erlang) has more details on Erlang version requirements for RabbitMQ.

Nodes **will fail to start** on older Erlang releases.


## Changes Worth Mentioning

Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v4.2.x/release-notes).

### Core Server

#### Bug Fixes

 * Classic queues could terminate and restart during recovery in certain rare conditions.

   GitHub issue: [#15595](https://github.com/rabbitmq/rabbitmq-server/pull/15595)

 * Quorum queues could incorrectly reject messages during deletion.

   GitHub issue: [#15554](https://github.com/rabbitmq/rabbitmq-server/pull/15554)

 * Peer discovery could run into a crash when `rabbit_nodes:list_members/0` returned
   an empty list due to an error or a timeout.

   GitHub issue: [#15568](https://github.com/rabbitmq/rabbitmq-server/pull/15568)

 * Definition import now strips a leading UTF-8 BOM if the input file has one.

   GitHub issues: [#13748](https://github.com/rabbitmq/rabbitmq-server/issues/13748), [#15550](https://github.com/rabbitmq/rabbitmq-server/pull/15550)

 * Exceptions thrown by decorator callbacks (such as those used by federation)
   during policy change notifications were silently suppressed. They are now logged.

   GitHub issue: [#15525](https://github.com/rabbitmq/rabbitmq-server/pull/15525)

#### Enhancements

 * Improved Mnesia-to-Khepri migration throughput.

   GitHub issue: [#15480](https://github.com/rabbitmq/rabbitmq-server/pull/15480)

 * Additional [aten](https://github.com/rabbitmq/aten) settings are now exposed in `rabbitmq.conf`.
   Previously only the poll interval was configurable.

   GitHub issue: [#15564](https://github.com/rabbitmq/rabbitmq-server/pull/15564)


### Stream Plugin

#### Bug Fixes

 * `parse_command/1` crashed with a `function_clause` error when receiving a zero-size frame,
   such as those sent by load balancer probes or port scanners.

   GitHub issue: [#15703](https://github.com/rabbitmq/rabbitmq-server/pull/15703)

 * `rabbit_stream_manager` could crash with a `case_clause` error when a stream declaration
   failed due to a metadata store timeout.

   GitHub issue: [#15699](https://github.com/rabbitmq/rabbitmq-server/pull/15699)

#### Enhancements

 * Less log noise from load balancer and port scanner probes (that do not perform an AMQP 1.0 or AMQP 0-9-1 handshake)

   GitHub issue: [#15715](https://github.com/rabbitmq/rabbitmq-server/pull/15715)


### Management Plugin

#### Bug Fixes

 * Request bodies above the configured maximum limit are now rejected earlier.

   GitHub issue: [#15712](https://github.com/rabbitmq/rabbitmq-server/pull/15712)

 * Validation improvements for several API endpoints.

   They now ignore node names that do not refer to existing cluster members,
   reject unknown fields, etc.

   GitHub issues: [#15622](https://github.com/rabbitmq/rabbitmq-server/pull/15622), [#15623](https://github.com/rabbitmq/rabbitmq-server/pull/15623), [#15625](https://github.com/rabbitmq/rabbitmq-server/pull/15625), [#15627](https://github.com/rabbitmq/rabbitmq-server/pull/15627)

 * Queue API responses now include policy-related fields (`policy`, `operator_policy`,
   `effective_policy_definition`) and `delivery_limit` when management stats collection
   is disabled via `rabbitmq.conf`.

   GitHub issues: [#15182](https://github.com/rabbitmq/rabbitmq-server/issues/15182), [#15651](https://github.com/rabbitmq/rabbitmq-server/pull/15651)

### CLI Tools

#### Bug Fixes

 * `rabbitmq-diagnostics status` and `rabbitmqctl status` crashed when targeting a node
   in maintenance mode because `vm_memory_high_watermark` was `nil`
   (the `vm_memory_monitor` process does not run in that state).

   GitHub issues: [#15678](https://github.com/rabbitmq/rabbitmq-server/issues/15678), [#15680](https://github.com/rabbitmq/rabbitmq-server/pull/15680)

#### Enhancements

 * `rabbitmq-plugins` now produces a clearer error message when run by a non-`root` user.

   GitHub issue: [#15701](https://github.com/rabbitmq/rabbitmq-server/pull/15701)


### Federation Management Plugin

#### Bug Fixes

 * The `x-internal-purpose` and `consumer_timeout` argument values are now correctly escaped.

   GitHub issues: [#15606](https://github.com/rabbitmq/rabbitmq-server/pull/15606), [#15708](https://github.com/rabbitmq/rabbitmq-server/pull/15708)


### Prometheus Plugin

#### Bug Fixes

 * Per-object metrics endpoint (`/metrics/per-object`) no longer emits duplicate `HELP`
   and `TYPE` metadata lines for Raft metrics when both quorum queues and Khepri are in use,
   which caused scraper parser errors.

   GitHub issues: [#15600](https://github.com/rabbitmq/rabbitmq-server/issues/15600), [#15610](https://github.com/rabbitmq/rabbitmq-server/pull/15610)


### Grafana Dashboards

#### Enhancements

 * The `Overview` dashboard's "TCP sockets available" panel was replaced with a "File descriptors available" panel
   that uses two modern metrics, `rabbitmq_process_max_fds` and `rabbitmq_process_open_fds`.

   GitHub issues: [#12673](https://github.com/rabbitmq/rabbitmq-server/issues/12673), [#15618](https://github.com/rabbitmq/rabbitmq-server/pull/15618)


### Shovel Plugin

#### Bug Fixes

 * An attempt to declare a dynamic shovel with multiple `src-queue-args` or `dest-queue-args` values
   configured could run into an exception during validation.

   GitHub issues: [#8323](https://github.com/rabbitmq/rabbitmq-server/issues/8323), [#8356](https://github.com/rabbitmq/rabbitmq-server/pull/8356)


### Web STOMP Plugin

#### Bug Fixes

 * A terminated heartbeat monitor process could cause a crash during connection shutdown.

   GitHub issue: [#15607](https://github.com/rabbitmq/rabbitmq-server/pull/15607)


### Dependency Changes

None in this release.
