Please post full stack traces as text (e.g. a GitHub gist) in the future.
The function you are using can time out (it has a timeout argument). Timeouts are a fact of life in distributed
systems, in particular in public clouds. Your application has to handle them. A timeout should be treated as a publishing failure
in this case.
And please don't open a new connection per message. That's incredibly inefficient and not how Bunny or RabbitMQ are meant to be used.
Connections are meant to be long lived (possibly pooled), this has been discussed many times before on this list.