diff --git a/MegaApiClient/MegaApiClient.cs b/MegaApiClient/MegaApiClient.cs index 59c102e..64e1478 100644 --- a/MegaApiClient/MegaApiClient.cs +++ b/MegaApiClient/MegaApiClient.cs @@ -1115,6 +1115,7 @@ private TResponse RequestCore(RequestBase request, byte[] key) var uri = GenerateUrl(request.QueryArguments); object jsonData = null; var attempt = 0; + var apiCode = ApiResultCode.Ok; while (_options.ComputeApiRequestRetryWaitDelay(++attempt, out var retryDelay)) { var dataResult = _webClient.PostRequestJson(uri, dataRequest); @@ -1124,7 +1125,7 @@ private TResponse RequestCore(RequestBase request, byte[] key) || jsonData is long || jsonData is JArray array && array[0].Type == JTokenType.Integer) { - var apiCode = jsonData == null + apiCode = jsonData == null ? ApiResultCode.RequestFailedRetry : jsonData is long ? (ApiResultCode)Enum.ToObject(typeof(ApiResultCode), jsonData) @@ -1150,6 +1151,11 @@ private TResponse RequestCore(RequestBase request, byte[] key) break; } + if (apiCode != ApiResultCode.Ok) + { + throw new ApiException(apiCode); + } + var data = ((JArray)jsonData)[0].ToString(); return (typeof(TResponse) == typeof(string)) ? data as TResponse : JsonConvert.DeserializeObject(data, new GetNodesResponseConverter(key)); }