anchor.diff:                            end)
                   end)
         end).
  +
  +maybe_extract_important_buckets_props({struct, NodeKV}, Ctx) ->
  +    case proplists:get_value(<<"couchApiBase">>, NodeKV) of
  +        undefined ->
  +            ?log_debug("skipping node without couchApiBase: ~p", [NodeKV]),
  +            [];
  +        _ ->
  +            extract_node_props([{<<"hostname">>, fun extract_string/2},
  +                                {<<"couchApiBase">>, fun extract_string/2},
  +                                {<<"ports">>, fun extract_object/2}],
  +                               Ctx, {struct, NodeKV})
  +    end;
  +maybe_extract_important_buckets_props(BadNodeStruct, Ctx) ->
  +    extract_node_props([], Ctx, BadNodeStruct).
  +
   
   remote_bucket_with_bucket(BucketObject, UUID,
                             BucketUUID, PoolNodeProps, BucketNodeProps, Creds) ->
  
positive.code:                           fun (BucketObject, BucketUUID) ->
                                    with_nodes(
                                      BucketObject, <<"bucket details">>,
                                      [{<<"hostname">>, fun extract_string/2},
                                       {<<"couchApiBase">>, fun extract_string/2},
                                       {<<"ports">>, fun extract_object/2}],
                                      fun (BucketNodeProps) ->
                                              remote_bucket_with_bucket(BucketObject,
                                                                        UUID,
  
negative.code:               end
        end).
  
  extract_node_props(PropsExtractor, Context, NodeStruct) when is_function(PropsExtractor) ->
      PropsExtractor(NodeStruct, Context);
  extract_node_props(Props, Context, {struct, Node}) ->
      R =
          lists:foldl(
  