CLI sync out: Result set is too large to be retrieved

Hey! I’m trying to migrate a data from one self-hosted squidex to another already updated to 5.4.0 squidex version.

The migration I’m trying to do with cli: sq sync out && sq sync in and I’m facing the problem with export: it falls with strange exception Result set is too large to be retrieved. Use $take parameter to reduce the number of items but I don’t see any $take options in cli documentation.

Also due to I faced the problem I’d like to request a feature: could you please add possibility to choose a schemas for content exporting with sq sync out ?

I’m submitting a…

  • [ ] Regression (a behavior that stopped working in a new release)
  • [ x ] Bug report
  • [ ] Performance issue
  • [ ] Documentation issue or request

Current behavior

sq sync out --targets contents my_app is falling with the exception:

ERROR: Squidex.ClientLibrary.SquidexException: Squidex Request failed: {"message":"Result set is too large to be retrieved. Use $take parameter to reduce the number of items.","traceId":"|e4325a61-43a3d9c900c84b2a.","type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","statusCode":400}
   at Squidex.ClientLibrary.Utils.SquidexClientBase.EnsureResponseIsValidAsync(HttpResponseMessage response)
   at Squidex.ClientLibrary.Utils.SquidexClientBase.RequestJsonAsync[T](HttpMethod method, String path, HttpContent content, QueryContext context, CancellationToken ct)
   at Squidex.ClientLibrary.ContentsClient`2.GetAllAsync(Int32 batchSize, Func`2 callback, QueryContext context, CancellationToken ct)
   at Squidex.CLI.Commands.Implementation.Sync.Contents.ContentsSynchronizer.ExportAsync(DirectoryInfo directoryInfo, JsonHelper jsonHelper, SyncOptions options, ISession session)
   at Squidex.CLI.Commands.Implementation.Sync.Synchronizer.<>c__DisplayClass4_0.<<ExportAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Squidex.CLI.Commands.Implementation.Sync.Extensions.Foreach[T](IEnumerable`1 source, Func`3 action)
   at Squidex.CLI.Commands.Implementation.Sync.Synchronizer.ExportAsync(String path, SyncOptions options, ISession session)
   at Squidex.CLI.Commands.App.Sync.Out(OutArguments arguments)
   at CommandDotNet.Execution.InvocationResultExtensions.GetResultCodeAsync(Object value)
   at CommandDotNet.AppRunner.HandleException(Exception ex, IConsole console, CommandContext commandContext)
   at CommandDotNet.AppRunner.Run(String[] args)
   at Squidex.CLI.Program.Main(String[] args)

Expected behavior

Contents export should works fine.

Minimal reproduction of the problem

I have an application with a lot of content at some schemas
for example the schema with the problem has 49k records
probably one of them (or maybe even several) has more than expected size and it’s crashing the export

Environment

  • [ x ] Self hosted with docker
  • [ ] Self hosted with IIS
  • [ ] Self hosted with other version
  • [ ] Cloud version

Version: 4.5.1

Browser:

  • [ x ] Chrome (desktop)
  • [ ] Chrome (Android)
  • [ ] Chrome (iOS)
  • [ ] Firefox
  • [ ] Safari (desktop)
  • [ ] Safari (iOS)
  • [ ] IE
  • [ ] Edge

Others:

It could be an old bug that is already fixed. I would just use mongodump and mongorestore instead.

I’ve tried already :slight_smile: And thats why I created another one topic