The cause of the failure is a worker crash, for a runner running the 2i query on a particular vnode. When attempting to apply the coverage filter, it needs to chash the key .. but the key is in a typed bucket, and presumably the information about that typed bucket has not yet propagated after the join. so the bucket properties is {error, no_type} not a list of properties, and attempting to find the key function in the bucket properties fails https://github.com/basho/riak_test/blob/develop-3.0/tests/verify_2i_handoff.erl#L118.
So this looks like this has always been an issue, you cannot reliably run 2i queries during joins (although potentially only impacting typed buckets).
The testing of 2i during cluster change operations was improved via this PR. https://github.com/basho/riak_test/pull/1354/files
However, this test now fails intermittently at this point - https://github.com/basho/riak_test/blob/develop-3.0/tests/verify_2i_handoff.erl#L118
The cause of the failure is a worker crash, for a runner running the 2i query on a particular vnode. When attempting to apply the coverage filter, it needs to chash the key .. but the key is in a typed bucket, and presumably the information about that typed bucket has not yet propagated after the join. so the bucket properties is {error, no_type} not a list of properties, and attempting to find the key function in the bucket properties fails https://github.com/basho/riak_test/blob/develop-3.0/tests/verify_2i_handoff.erl#L118.
So this looks like this has always been an issue, you cannot reliably run 2i queries during joins (although potentially only impacting typed buckets).