Well, the issue happened because a bad use of iterators.
In some checks of my explanation, some steps are getting current row from an iterator, and reuse the same iterator to get another rowset by executeQuery, so current row was lost and it implied an inconsistent state.
The solution is to create another different iterator, from the same view, but a different iterator with different name. So, the main iterator keeps current row, and other additional operationes, queries, etc. are made by different iterator.
Hope it helps. Regards