anchor.diff:  %% Notify onezone about IPs change.
   %% @end
   %%--------------------------------------------------------------------
  --spec update_subdomain_delegation_ips(service:ctx()) -> ok.
  -update_subdomain_delegation_ips(#{node := Node} = Ctx) ->
  +-spec update_provider_ips(service:ctx()) -> ok.
  +update_provider_ips(#{node := Node} = Ctx) ->
       case is_registered(Ctx) of
           true ->
  -            ok = rpc:call(Node, provider_logic, update_subdomain_delegation_ips, []);
  +            % no check of results - if the provider is not connected to onezone
  +            % the IPs will be sent automatically after connection is acquired
  +            rpc:call(Node, provider_logic, update_subdomain_delegation_ips, []);
           false -> ok
       end;
  -update_subdomain_delegation_ips(Ctx) ->
  -    [Node | _] = service_op_worker:get_nodes(),
  -    update_subdomain_delegation_ips(Ctx#{node => Node}).
  +update_provider_ips(Ctx) ->
  +    [Node | _] = service_op_worker:get_nodes(),
  +    update_provider_ips(Ctx#{node => Node}).
   
   
   %%--------------------------------------------------------------------
  
positive.code:     support_space/1, revoke_space_support/1, get_spaces/1,
      get_space_details/1, modify_space/1, get_cluster_ips/1,
      get_sync_stats/1, get_autocleaning_reports/1, get_autocleaning_status/1,
      start_cleaning/1, check_oz_connection/1, update_subdomain_delegation_ips/1]).
  -export([restart_listeners/1, restart_provider_listeners/1, async_restart_listeners/1]).
  -export([obtain_webcert/1, set_txt_record/1, remove_txt_record/1,
      mark_letsencrypt_decided/1, clear_pem_cache/1]).
  
negative.code: 
  get_steps(obtain_webcert, #{hosts := Hosts}) ->
      [
          #step{hosts = Hosts, function = obtain_webcert, selection = any},
          #step{hosts = Hosts, function = clear_pem_cache, selection = any},
          #step{hosts = Hosts, function = async_restart_listeners, selection = any}
  