Jump to content

RabbitMQ

From NixOS Wiki

RabbitMQ is a messaging broker, an intermediary for messaging. It gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

Troubleshooting

Upgrading RabbitMQ fails because of missing feature flag

Following error message might occur on major version upgrades

Feature flags: `stream_filtering`: required feature flag not enabled! It must be enabled before upgrading RabbitMQ.
Failed to initialize feature flags registry: {disabled_required_feature_flag, stream_filtering}

One possible workaround is to downgrade RabbitMQ to the latest working version

nixpkgs = {
  overlays = [
    (self: super: {
      rabbitmq-server = super.rabbitmq-server.overrideAttrs (oldAttrs: rec {
        version = "3.13.7";
        src = pkgs.fetchurl {
          url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-3.13.7.tar.xz";
          hash = "sha256-GDUyYudwhQSLrFXO21W3fwmH2tl2STF9gSuZsb3GZh0=";
        };
      });
    })
  ];
};

Adapt the version, url and hash according to your needs. Apply configuration and ensure rabbitmq service is running successfully. Issue following command to enable all feature flags:

sudo -u rabbitmq rabbitmqctl enable_feature_flag all

After that remove the overlay above from your system configuration and the new RabbitMQ version should successfully upgrade.