Ola Matheus tudo bem? Na verdade a chamada dentro do looping é mais específica
val teste2 = operacaoDao.buscaPorData(data)
Mas eu testei de tudo e dentro do looping não retorna valor. Se eu faço essa mesma chamada fora do looping há o retorno. Logo a query funciona. Fiz uma gambiarra. Através da chamada que busca todos criei um Array e passei ele pelo looping for separando por data. Resolveu o problema. Mas entendo que é uma solução fraca visto que não sei primeiramente o que está dando errado. Tenho duas teorias:
A primeira é que a minha dependências do room (2.4.1) e do lifecycle (2.5.1) estão desatualizadas e que esse erro potencial encontra solução em versões recentes. Contudo quando tento atualizar o gradle tudo entra em conflito ( o caos ). Então deixo nessas versões porque está funcionando assim . Não sei resolver os conflitos de dependências.
A segunda teoria é que estou de alguma forma mandando duas corotinas acessar os mesmo dados no bd e o room está dando prioridade pra uma delas. Já tive nesse projeto problemas semelhantes onde alguns resultados esperados não eram obtidos porque parte do código "furava a fila". Resolvi deixando o código mais síncrono obrigando a uma corotina especifica ser executa somente o término de outra corotina específica.
Por hora a gambiarra sanou a pane, mas me incomoda fazer gambiarras hehe