See server logs for clues. Topology recovery cannot be guaranteed to always work.
For better or worse, AMQP 0-9-1 topology operations must be idempotent,
and with some failure scenarios and systems the topology changes can happen while the connection is down.
One well known example of this is client-named (well known, not server-named) exclusive queues. There's a natural race condition
between a client's post-recovery redeclaration on another node and RabbitMQ's exclusive queue deletion operation. It can result
in a RESOURCE_LOCKED channel exception which will be visible in the logs. There is nothing the client or RabbitMQ can do about it.
There is something you as a developer can: avoid using client-named exclusive queues; use server-named queues if they must be exclusive,
that means the server will generate a unique [within the vhost] name each time.