TypeAhead.js y Bloodhound muestran un número impar de resultados

Tengo una implementación TypeAhead / Bloodhound en mi interfaz, que obtiene datos JSON de un servidor Play / Scala. La versión de Typeahead es 0.11.1. La implementación es la siguiente:

HTML:

<div id="typeahead" class="col-md-8">
   <input class="typeahead form-control"  type="text" placeholder="Select the user">
</div>

JavaScript:

var engine = new Bloodhound({
  datumTokenizer: function (datum) {
    var fullName = fullName(datum);
    return Bloodhound.tokenizers.whitespace(fullName);
  },
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  identify: function(obj) { return obj.id; },
  remote: {
    url: routes.controllers.Users.index("").url,
    cache: false,
    replace: function (url, query) {
        if (!isEmpty(query)) {
            url += encodeURIComponent(query);
        }
        return url;
    },
    filter: function (data) {
        console.log(data);
        return $.map(data, function (user) {
            return {
                id: user.id,
                fullName: viewModel.fullName(user)
            };
        });
    }
}
});

// instantiate the typeahead UI
$('#typeahead .typeahead')
.typeahead({
    hint: true,
    highlight: true,
    minLength: 1,
},
{
    name: 'engine',
    displayKey: 'fullName',
    source: engine
})

function fullName(data) {
  if (data === undefined) return "";
  else {
    var fName = data.firstName === undefined ? "" : data.firstName;
    var lName = data.lastName === undefined ? "" : data.lastName;
    return fName + ' ' + lName;
  }
};

Respuesta JSON que da el servidor:

[{"firstName":"Test","lastName":"User", "id":1}, ... ]

El servidor pagina el resultado para que dé un máximo de 5 resultados, que también se supone que es el límite predeterminado para Typeahead / Bloodhound.

El problema es que cuando el servidor devuelve 5 resultados, Typeahead muestra 0 resultados en la superposición. Si el servidor da 4 resultados, TypeAhead muestra 1 en la superposición. Si el servidor da 3 resultados, TypeAhead muestra 2 resultados. Para los resultados 2 y 1, muestra el número correcto de elementos en la superposición. Si elimino la longitud de la página y el servidor devuelve más de 10 resultados, TypeAhead muestra 5 resultados (el límite). console.log dentro del filtro muestra la cantidad correcta de resultados de datos, por lo que van al Bloodhound al menos.

¿Cuál podría ser el problema con este código? Este campo TypeAhead es el único campo TypeAhead presente en esta página. Verifiqué el DOM y TypeAhead genera una cantidad incorrecta de campos de conjunto de resultados, por lo que no es un problema con CSS (traté de eliminar también todos los CSS personalizados).

Gracias por cualquier respuesta :)

Respuestas a la pregunta(4)

Su respuesta a la pregunta