                 partition_exch_options =
                     autoDelete: if options.autoDelete? then options.autoDelete else true
                 steps.concat([
-                    ch.assertExchange(partition_exch_name, 'x-consistent-hash')
+                    ch.assertExchange(partition_exch_name, 'x-consistent-hash', partition_exch_options)
                     ch.bindExchange(partition_exch_name, exch_options, topic)
                 ])
                 topic = '10' # for x-consistent hash echange topic is a weight

                throw new Error("Do not know how to hange message type: " + content_type)
        content

    _wrap_consumer_callback: (fn, channel, options) ->
        """ Wrapper for unpacking message content """
        decode = @_decode_message

        It is subject to _.memoize, so it will be called only once per connection
        ###
        url = @_get_connection_url()
        amqp.connect(url).then (conn) =>
            logger.debug('Created new amqp connection', {conn})
            conn.on 'error', (err) ->
                    logger.error({err}, "Connection error", {url})
                    @emit('error', err)
                    process.exit(1)
                    @_reset_connection()
                .on 'close', ->
                    logger.info('Connection closed', {url})
                    if not @_connect.has()
