anchor.diff:      end,
       Ret.
   
  +%% @doc retrieve UDM and set it back to the meta field
  +%%      to fix https://github.com/leo-project/leofs/issues/641
  +%% @private
  +-spec(get_cmeta(Meta) ->
  +             {ok, #?METADATA{}} |
  +             {error, any()} when Meta::#?METADATA{}).
  +get_cmeta(Meta) ->
  +    case leo_object_storage_transformer:get_udm_from_cmeta_bin(Meta#?METADATA.meta) of
  +        {ok, {ok, {ok, UDM}}} ->
  +            %% match if an object belongs to the destination and already read_repaired.
  +            {ok, Meta#?METADATA{meta = term_to_binary(UDM)}};
  +        {ok, {ok, UDM}} ->
  +            %% match if an object belongs to the destination and still not read_repaired.
  +            {ok, Meta#?METADATA{meta = term_to_binary(UDM)}};
  +        {ok, []} ->
  +            %% match if an object belongs to the soruce
  +            %% match with <= 1.3.2.1
  +            {ok, Meta};
  +        {ok, UDM} ->
  +            %% match if an object belongs to the source
  +            %% match with >= 1.3.3
  +            {ok, Meta#?METADATA{meta = term_to_binary(UDM)}};
  +        Other ->
  +            %% ignore broken custom metadata and just log the error
  +            ?error("get_cmeta/1", [{from, storage}, {method, get},
  +                             {key, Meta#?METADATA.key},
  +                             {meta, Meta#?METADATA.meta},
  +                             {cause, Other}]),
  +            {ok, Meta#?METADATA{meta = <<>>}}
  +    end.
   
   %% @doc read data (common).
   %% @private
  
positive.code:     RPCKey = rpc:async_call(Node, leo_object_storage_api, head, [{AddrId, Key}]),
      case rpc:nb_yield(RPCKey, ?DEF_REQ_TIMEOUT) of
          {value, {ok, MetaBin}} ->
              {ok, binary_to_term(MetaBin)};
          _ ->
              head_1(Rest, AddrId, Key)
      end;
  
negative.code:                                  Redundancies::[#redundant_node{}]).
  get(ReadParameter, Redundancies) when Redundancies /= [] ->
      ok = leo_metrics_req:notify(?STAT_COUNT_GET),
      case read_and_repair(ReadParameter, Redundancies) of
          {ok, #?METADATA{meta = CMeta} = Meta, Bin} when CMeta =/= <<>> ->
              {ok, NewMeta} = get_cmeta(Meta),
              {ok, NewMeta, Bin};
          Other ->
              Other
      end;
  
  get(#read_parameter{addr_id = AddrId} = ReadParameter,_Redundancies) ->
      BeginTime = leo_date:clock(),
  