anchor.diff:          handleODataEntry nugetURL packageName version entry
           |> ODataSearchResult.Match
   
  -let parseODataEntryDetails (url,nugetURL,packageName:PackageName,version:SemVerInfo,raw) =
  -    let doc = getXmlDoc url raw
  +let parseODataEntryDetails (url,nugetURL,packageName:PackageName,version:SemVerInfo,doc) =
       match doc |> getNode "entry" with
       | Some entry ->
           handleODataEntry nugetURL packageName version entry
  -    | None -> failwithf "Could not find 'entry' node for package %O %O" packageName version
  +    | None ->
  +        // allow feed node, see https://github.com/fsprojects/Paket/issues/2539
  +        // TODO: traceWarnfn "Consider updating your NuGet server, see https://github.com/fsprojects/Paket/issues/2539"
  +        match parseODataListDetails (url,nugetURL,packageName,version,doc) with
  +        | EmptyResult ->
  +            failwithf "Could not find 'entry' node for package %O %O" packageName version
  +        | ODataSearchResult.Match entry -> entry
  +
   
   let getDetailsFromNuGetViaODataFast auth nugetURL (packageName:PackageName) (version:SemVerInfo) =
       async {
  
positive.code:                     tracefn "Response from %s:" url
                      tracefn ""
                      tracefn "%s" raw
                  return parseODataListDetails(url,nugetURL,packageName,version,raw)
              }
  
          let fallback () =
  
negative.code:                         tracefn "Response from %s:" url
                          tracefn ""
                          tracefn "%s" raw
                      let doc = getXmlDoc url raw
                      match parseODataListDetails(url,nugetURL,packageName,version,doc) with
                      | EmptyResult ->
                          if verbose then tracefn "No results, trying again with NormalizedVersion as Version instead of Version."
                          return! fallback2()
  