I do not have a simple code fragment at hand to replicate the issue; will continue investigation and report here. Posting now just in case @sanket1729 may have an idea why this is happening.
The descriptor I am using is
tr(acc0, {
multi_a(3, acc10, acc11, acc12), {
and_v(
v:multi_a(2, acc10, acc11, acc12),
after(10)
),
and_v(
v:multi_a(1, acc10, acc11, acc12),
after(100)
)
}
})
, where acc* are aliases for key derivations (they are resolved via special dictionary file in my descriptor-wallet).
So, Descriptor::Tr::for_each_key parsed from this object, iterates only over acc0 and three times over the same acc10, skipping acc11 and acc12 altogether.