When trying to transfer/restore nested content with a checkbox property it fails with this error message:
System.NotSupportedException: Value of type "System.Int64" is not supported.
Umbraco.Deploy.Exceptions.RemoteApiException: The remote API has thrown an exception.
Reproduction Bug summary
When the content is being modified in the NestedContentValueConnector it's sent to DefaultValueConnector in Deploy. Deploy is expecting it to be a String but the value for the checkbox is being sent as a Long.
Umbraco.Deploy.Contrib.Connectors.ValueConnectors.NestedContentValueConnector.ToArtifact(Object value, PropertyType propertyType, ICollection1 dependencies) :line 97
If I removed the Deploy.Contrib from the project the checkbox was transferred successfully and deploy received the value as a String.
SpecificsTested on Cloud with projects running
Umbraco: v8.3.0 and v8.4.0
Deploy: v3.2.0
Deploy.contrib: v3.0.0
Stack trace
REMOTE:
System.NotSupportedException: Value of type "System.Int64" is not supported.
at Umbraco.Deploy.Connectors.ValueConnectors.DefaultValueConnector.ToArtifact(Object value, PropertyType propertyType, ICollection`1 dependencies) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ValueConnectors\DefaultValueConnector.cs:line 45
at Umbraco.Deploy.Contrib.Connectors.ValueConnectors.NestedContentValueConnector.ToArtifact(Object value, PropertyType propertyType, ICollection`1 dependencies) in C:\UmbracoRepos\Deploy-contrib-3\Umbraco.Deploy.Contrib\src\Umbraco.Deploy.Contrib.Connectors\ValueConnectors\NestedContentValueConnector.cs:line 97
at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.ContentConnectorBase`2.SerializeNonVariantValue(ICollection`1 dependencies, Dictionary`2 propertyCollection, Property property, IValueConnector valueConnector) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ContentConnector\ContentConnectorBase.cs:line 251
at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.ContentConnectorBase`2.AddProperty(Property property, ICollection`1 dependencies, Boolean published, Dictionary`2 propertyCollection) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ContentConnector\ContentConnectorBase.cs:line 214
at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.ContentConnectorBase`2.MapArtifactProperties(PropertyCollection properties, ICollection`1 dependencies, Boolean published) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ContentConnector\ContentConnectorBase.cs:line 200
at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnector.MapVersion(IContent content, ICollection`1 dependencies, Boolean published) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ContentConnector\DocumentConnector.cs:line 240
at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnector.GetArtifact(GuidUdi udi, IContent content) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ContentConnector\DocumentConnector.cs:line 141
at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnector.GetArtifact(GuidUdi udi) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ContentConnector\DocumentConnector.cs:line 102
at Umbraco.Deploy.Connectors.ServiceConnectors.ServiceConnectorBase`3.Umbraco.Core.Deploy.IServiceConnector.GetArtifact(Udi udi) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Connectors\ServiceConnectors\ServiceConnectorBaseOfTArtifact.cs:line 49
at Umbraco.Deploy.Environments.CurrentEnvironment.<GetArtifacts>b__20_0(Udi x) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Environments\CurrentEnvironment.cs:line 310
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at Umbraco.Deploy.Environments.CurrentEnvironment.CreatePackage(Guid sessionId, Manifest manifest) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Environments\CurrentEnvironment.cs:line 600
at Umbraco.Deploy.Environments.EnvironmentController.<>c__DisplayClass11_0.<BeginCreatePackage>b__0() in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Environments\EnvironmentController.cs:line 126
at Umbraco.Deploy.Work.WorkItems.SessionWorkItem.<>c__DisplayClass30_0.<ExecuteAction>b__0(CancellationToken token) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Work\WorkItems\SessionWorkItem.cs:line 289
at Umbraco.Deploy.Work.WorkItems.SessionWorkItem.<ExecuteAsync>d__24.MoveNext() in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Work\WorkItems\SessionWorkItem.cs:line 199
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Umbraco.Deploy.Work.WorkItems.SessionWorkItem.WaitIdle() in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Work\WorkItems\SessionWorkItem.cs:line 234
at Umbraco.Deploy.Environments.EnvironmentController.WaitIdle(SessionActionModel model) in C:\UmbracoRepos\New-Deploy\Umbraco-Deploy\Umbraco.Deploy\Environments\EnvironmentController.cs:line 111
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()
Steps to reproduce
Create two Doctypes on Live. One that's an element and contains a checkbox property. The other one enabled as Root node. Which contains a nested content property and pick the element with the checkbox.
Create a Root node. Then either clone down the project or create a Dev environment. Then try to restore the content to that environment.
Restore the content successfully.
Actual resultGet an error message saying that a value is not supported.
schnitty, rensknoors, Aaen, dpedrovich and marchjorth
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4