This is most probably invoked internally for ConfD as an existence check / check whether any data is present in the list before further processing…
IMHO you cannot disable it explicitly - maybe other callbacks like .num_instances() can be added to be invoked instead of get_next() by ConfD if it makes your situation easier (i haven’t tested myself if it works this way).
Is it safe to assume that get_next will always be called before calling get_next_object? Based on some experiments, it looks like that.
So that I do memory allocation only in get_next (when next = -1) and ignore memory allocation for get_next_object.
We used to have the same issue. If we do not register get_next_object() then confd would invoke get_next() twice with next = -1. In first next = -1 call, we used to place the malloced data in tctx->t_opaque (otherwise NULL before this). And then this t_opaque data is propagated to next get_next() or get_next_object() calls. We avoided allocation there by checking if t_opaque is already non-NULL.