"Newtonsoft.Json.JsonSerializationException: Cannot create and populate list type..."
Published 27 June 2018
This error can occur when an incompatible version of Newtonsoft.Json has been loaded into the Global Assembly Cache (typically by another application). For example, the version in the GAC may be for .NET 4, whereas SQL Clone uses a version for .NET 4.5. .NET will preferentially load the version in the GAC, and in the case of Newtonsoft.Json is unable to distinguish between incompatible versions, causing this issue. Ideally, no application would load Newtonsoft.Json into the GAC, as this potential incompatibility is well known.
The problem can be solved by replacing the .dll file in the GAC with the .dll shipped with SQL Clone, or removing the .dll from the GAC entirely. (However, the latter solution may cause other applications - likely the one which loaded the .dll into the GAC in the first place - to malfunction.)
If gacutil is installed, the .dll can be installed as follows, modifying the path to match the install location of the agent or server:
gacutil -i "C:\Program Files\Red Gate\SQL Clone Agent\<version>\Newtonsoft.Json.dll"