docs: function(topic, cb) {
      if (topic.params.offset === undefined || topic.params.offset === -1) {
        var fetchFrom = topic.broker;
  
        if (topic.params.fetchFromCoordinator) {
          fetchFrom = _groupCoordinator;
        }
  
        fetchFrom.offsetFetch({
          group: _options.group,
          topic: topic.params.topic,
          partition: topic.params.partition,
          fetchFromCoordinator: topic.params.fetchFromCoordinator
        }, function(err, response) {
          if (err) { return cb(err); }
          var partition = _.findWhere(_.findWhere(response.topics, {name: topic.params.topic}).partitions, {partitionId: topic.params.partition});
          if (partition.error === 0) {
            if (partition.offsetLo === 0xffffffff &&
                partition.offsetHi === 0xffffffff) {
  
              // BUG in Kafka - if the topic offset has not been set then an error condition is returned and
              // -1 is set for the offset, once an offset is set this condition is cleared
              topic.params.offset = 0;
            } else {
              topic.params.offset = partition.offsetLo;
            }
            cb(null, topic);
          }
          else {
            cb(partition.error, null);
          }
        });
      }
      else {
        cb(null, topic);
      }
    }