anchor.diff:      orelse is_record(Type, file_renamed_event)
       orelse is_record(Type, quota_exceeded_event) ->
       {ok, #document{value = #session{proxy_via = ProxyVia}}} = session:get(SessId),
  -    utils:ensure_defined(ProxyVia, undefined, oneprovider:get_id_or_undefined());
  +    utils:ensure_defined(ProxyVia, undefined, self);
   get_provider(_, SessId, FileCtx) ->
       ProviderId = oneprovider:get_id(),
       case file_ctx:is_root_dir_const(FileCtx) of
  
positive.code:         case {get_provider(Request, Manager), Request} of
              {self, _} ->
                  handle_locally(Request, Manager);
              {RemoteProviderId, _} ->
                  {ok, SessId} = ets_state:get(session, Manager, session_id),
                  handle_remotely(Request, RemoteProviderId, SessId);
              {RemoteProviderId, #subscription{} = Sub} ->
                  gen_server2:cast(Manager, {cache_provider, Sub, RemoteProviderId}),
                  {ok, SessId} = ets_state:get(session, Manager, session_id),
  
negative.code:     RequestCtx = get_context(Request),
      case RequestCtx of
          undefined ->
              self;
          {file, FileCtx} ->
              FileGuid = file_ctx:get_guid_const(FileCtx),
              case get_from_memory(Manager, guid_to_provider, FileGuid) of
  