diff --git a/source/Cute.Lib/Contentful/BulkActions/Actions/ClearFieldsBulkAction.cs b/source/Cute.Lib/Contentful/BulkActions/Actions/ClearFieldsBulkAction.cs index 27bb654..22b4c74 100644 --- a/source/Cute.Lib/Contentful/BulkActions/Actions/ClearFieldsBulkAction.cs +++ b/source/Cute.Lib/Contentful/BulkActions/Actions/ClearFieldsBulkAction.cs @@ -45,7 +45,6 @@ private async Task GetAllEntriesForComparison(Action? p var queryBuilder = new EntryQuery.Builder() .WithContentType(_contentType) - .WithPageSize(1) .WithLocale("*") .WithIncludeLevels(0); diff --git a/source/Cute.Lib/Contentful/GraphQL/ContentfulGraphQlClient.cs b/source/Cute.Lib/Contentful/GraphQL/ContentfulGraphQlClient.cs index d5c44d7..8ec3602 100644 --- a/source/Cute.Lib/Contentful/GraphQL/ContentfulGraphQlClient.cs +++ b/source/Cute.Lib/Contentful/GraphQL/ContentfulGraphQlClient.cs @@ -97,6 +97,19 @@ public async IAsyncEnumerable GetDataEnumerable(string query, if (responseObject is null) yield break; + if (responseObject.SelectToken("errors") is JArray errors && errors.Count > 0) + { + if (retryCount < 10) + { + retryCount++; + postBody.variables["limit"] = (int)postBody.variables["limit"] / 2; + continue; + } + var errorMessage = errors[0]["message"]?.ToString() ?? "Unknown GraphQL error"; + var errorCode = errors[0].SelectToken("extensions.contentful.code")?.ToString(); + throw new CliException($"GraphQL error: {errorMessage}" + (errorCode != null ? $" (Code: {errorCode})" : "")); + } + if (responseObject.SelectToken(jsonResultsPath) is not JArray newRecords) yield break;