anchor.diff:                      {error, not_found}
               end
       end.
  +
  +-ifdef(EUNIT).
  +get_cmeta_test() ->
  +    ok = leo_logger_client_message:new("./", ?LOG_LEVEL_WARN),
  +    %% destination side with custom metadata
  +    UDM = [{<<"name">>, <<"LeoFS">>},
  +           {<<"category">>, <<"distributed storage">>},
  +           {<<"url">>, <<"leo-project.net/leofs">>}
  +          ],
  +    CMeta = [{?PROP_CMETA_CLUSTER_ID, 'leofs_1'},
  +             {?PROP_CMETA_NUM_OF_REPLICAS, 3},
  +             {?PROP_CMETA_VER, leo_date:clock()},
  +             {?PROP_CMETA_UDM, UDM}
  +            ],
  +    Meta1 = #?METADATA{meta = term_to_binary(CMeta)},
  +    {ok, Meta11} = get_cmeta(Meta1),
  +    ?assertEqual(term_to_binary(UDM), Meta11#?METADATA.meta),
  +
  +    %% soruce side with custom metadata
  +    Meta2 = #?METADATA{meta = term_to_binary(UDM)},
  +    {ok, Meta2} = get_cmeta(Meta2),
  +
  +    %% soruce side with broken custom metadata
  +    Meta3 = #?METADATA{meta = <<"broken">>},
  +    {ok, #?METADATA{meta = <<>>} = _Meta} = get_cmeta(Meta3),
  +
  +    %% destination side with broken custom metadata
  +    %% tuple nested doubly
  +    CMeta2 = [{?PROP_CMETA_CLUSTER_ID, 'leofs_1'},
  +             {?PROP_CMETA_NUM_OF_REPLICAS, 3},
  +             {?PROP_CMETA_VER, leo_date:clock()},
  +             {?PROP_CMETA_UDM, {ok, UDM}}
  +            ],
  +    Meta4 = #?METADATA{meta = term_to_binary(CMeta2)},
  +    {ok, Meta41} = get_cmeta(Meta4),
  +    ?assertEqual(term_to_binary(UDM), Meta41#?METADATA.meta),
  +
  +    %% destination side with broken custom metadata
  +    %% tuple nested triply
  +    CMeta3 = [{?PROP_CMETA_CLUSTER_ID, 'leofs_1'},
  +             {?PROP_CMETA_NUM_OF_REPLICAS, 3},
  +             {?PROP_CMETA_VER, leo_date:clock()},
  +             {?PROP_CMETA_UDM, {ok, {ok, UDM}}}
  +            ],
  +    Meta5 = #?METADATA{meta = term_to_binary(CMeta3)},
  +    {ok, Meta51} = get_cmeta(Meta5),
  +    ?assertEqual(term_to_binary(UDM), Meta51#?METADATA.meta),
  +
  +    ok.
  +-endif.
  
positive.code:     end,
      Ret.
  
  
  %% @doc read data (common).
  %% @private
  
negative.code:                         available = true}|Rest], AddrId, Key) when Node == erlang:node() ->
      case leo_object_storage_api:head({AddrId, Key}) of
          {ok, MetaBin} ->
              Meta = binary_to_term(MetaBin),
              case Meta#?METADATA.meta of
                  <<>> ->
                      {ok, Meta};
                  _CMeta ->
                      get_cmeta(Meta)
              end;
          Other ->
              case Other of
                  not_found ->
  