anchor.diff:                             misc = [{one_leaf_p1e, P1EOneLeaf}]})
     when is_bitstring(Hashes) ->
       ?TRACE1(_Msg, State),
  +    ?DBG_ASSERT(?implies(not IsInitiator, Hashes =/= <<>>)),
       {BinIdxList, NStats} =
           merkle_resolve_leaves_receive(MerkleSyncRcv, Hashes, DestRRPid, Stats,
                                         OwnerL, Params, P1EOneLeaf, IsInitiator),
  -    ?DBG_ASSERT(Hashes =/= <<>>),
       comm:send(DestRCPid, {resolve_req, idx, BinIdxList}),
       % free up some memory:
       NewState = State#rr_recon_state{merkle_sync = {MerkleSyncSend, []},
  
positive.code: merkle_resolve_leaves_receive(Sync, Hashes, DestRRPid, Stats, OwnerL, Params,
                                P1EOneLeaf, IsInitiator) ->
      BucketSizeBits = merkle_max_bucket_size_bits(Params),
      {<<>>, ToSend, ToResolve, ResolveNonEmpty, LeafNAcc} =
          lists:foldl(
            fun({MyMaxItemsCount, MyKVItems, LeafCount},
                {HashesAcc, ToSend, ToResolve, ResolveNonEmpty, LeafNAcc}) ->
                    % inner-leaf mismatch to resolve
                    {NHashes, OBucketTree, _OrigDBChunkLen, SigSize, VSize} =
                        merkle_resolve_retrieve_leaf_hashes(
                          HashesAcc, P1EOneLeaf, MyMaxItemsCount, BucketSizeBits),
  
negative.code:                                                 Params#merkle_params.bucket_size + 1),
                    {NHashes, ToSend1, ToResolve1,
                     ?IIF(ReqIdx =/= [], true, ResolveNonEmpty),
                     LeafNAcc + LeafCount, NIResolves}
            end, {Hashes, [], [], false, 0, 0}, Sync),
  
      % send resolve message:
      % resolve items we should send as key_upd:
      Stats1 = send_resolve_request(Stats, ToSend, OwnerL, DestRRPid, IsInitiator, true),
      % let the other node's rr_recon process identify the remaining keys;
      % it will use key_upd_send (if non-empty) and we must thus increase
  