Pivotal Knowledge Base


Downgrading version of RabbitMQ


Product Version



If for any reason you need to downgrade RabbitMQ you will encounter a schema_integrity_check_failed issue where the mnesia database can not be downgraded as the database schema only has "forward" migration steps.

Error description:
Log files (may contain more information):
{"init terminating in do_boot",


The mnesia database doesn't support backward migration steps. This will mean that all message data and mnesia directory would will need to be removed from all nodes


To prevent any data loss due to having to downgrade you can follow these step to ensure no data loss.

  • Export definitions JSON (queues, exchanges, bindings, users, virtual hosts, permissions, and parameters) from current broker using the management plugin [1
  • Setup you new cluster with the older version of RabbitMQ
  • Import the JSON definitions for queues, exchanges, etc.
  • Using shovel (dynamic or static) move messages from current cluster to the new cluster.
  • This can be fully automated using the HTTP API [2]
  • PUT /api/parameters/shovel/%2f/my-shovel
    {"value":{"src-uri": "amqp://", "src-queue": "my-queue", "dest-uri": "amqp://remote-server", "dest-queue": "another-queue"}}
  • Ensure that consumers and publisher are pointed to the newly created (older version of RabbitMQ) cluster.
  • Once all message are drained from the previous cluster you can shut that down.

Note: This process can also be used to upgrade RabbitMQ and avoid any downtime [3]. 

[1] https://www.rabbitmq.com/management.html

[2] https://www.rabbitmq.com/shovel-dynamic.html

[3] https://www.rabbitmq.com/clustering.html#upgrading



Powered by Zendesk