Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Michael Nielsen 154 posts 811 karma points
    Jan 07, 2022 @ 13:07
    Michael Nielsen
    0

    Cannot restore content from Cloud to Local

    When trying to restore content from Cloud to Local, I get the following error

    An error occurred
    
    The source environment has thrown a Umbraco.Deploy.Exceptions.RemoteApiException with message: The remote API has thrown an exception. It might have been caused by an inner System.ArgumentNullException with message: Value cannot be null. Parameter name: second
    
    The technical details may contain more information.
    

    Looking at the full error, it suggest it has something to do with variants.

    EXCEPTION:
    
    Umbraco.Deploy.Exceptions.RemoteApiException: The remote API has thrown an exception.
       ved Umbraco.Deploy.Environments.RemoteUmbracoEnvironment.<SucceedOrThrow>d__16.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved Umbraco.Deploy.Environments.RemoteUmbracoEnvironment.<WaitAction>d__17.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       ved Umbraco.Deploy.Environments.RemoteUmbracoEnvironment.<UpdateManifestAsync>d__51.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved Umbraco.Deploy.Work.WorkItems.DeployRestoreWorkItemBase.<NegotiateManifest>d__19.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<Proceed>d__16.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<ExecuteAsyncSub>d__15.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<ExecuteAsyncSub>d__15.MoveNext()
    --- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
       ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<ExecuteAsync>d__14.MoveNext()
    
    REMOTE:
    System.ArgumentNullException: Value cannot be null.
    Parameter name: second
    
       at System.Linq.Enumerable.Concat[TSource](IEnumerable`1 first, IEnumerable`1 second)
       at Umbraco.Deploy.Contrib.Connectors.ValueConnectors.BlockEditorValueConnector.ToArtifact(Object value, PropertyType propertyType, ICollection`1 dependencies)
       at Vendr.Deploy.Connectors.ValueConnectors.VendrVariantsEditorValueConnector.ToArtifact(Object value, PropertyType propertyType, ICollection`1 dependencies)
       at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.ContentConnectorBase`2.SerializeNonVariantValue(ICollection`1 dependencies, IDictionary`2 propertyCollection, Property property, IValueConnector valueConnector)
       at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.ContentConnectorBase`2.MapArtifactProperties(PropertyCollection properties, ICollection`1 dependencies, Boolean published)
       at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnectorBase.MapVersion(IContent content, ICollection`1 dependencies, Boolean published)
       at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnector.GetArtifact(GuidUdi udi, IContent content)
       at Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnector.GetArtifact(GuidUdi udi)
       at Umbraco.Deploy.Connectors.ServiceConnectors.ServiceConnectorBase`3.Umbraco.Core.Deploy.IServiceConnector.GetArtifact(Udi udi)
       at Umbraco.Deploy.Environments.CurrentEnvironment.GetDependencyArtifact(ArtifactDependency dep, DependentArtifactState& dependentArtifactState, String& dependencyName, String& dependencyErrorMessage)
       at Umbraco.Deploy.Environments.CurrentEnvironment.AddEntries(Manifest manifest, List`1 sigs, HashSet`1 exclude, IWorkItem workItem, CancellationToken token)
       at Umbraco.Deploy.Environments.CurrentEnvironment.UpdateManifest(Guid sessionId, Manifest manifest, IEnumerable`1 exclude)
       at Umbraco.Deploy.Environments.EnvironmentController.<>c__DisplayClass32_0.<BeginUpdateManifest>b__0()
       at Umbraco.Deploy.Work.WorkItems.SessionWorkItem.<>c__DisplayClass30_0.<ExecuteAction>b__0(CancellationToken token)
       at Umbraco.Deploy.Work.WorkItems.SessionWorkItem.<ExecuteAsync>d__24.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at Umbraco.Deploy.Work.WorkItems.SessionWorkItem.WaitIdle()
       at Umbraco.Deploy.Environments.EnvironmentController.WaitIdle(SessionActionModel model)
       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.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.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.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>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.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()
    

    Umbraco 8.17.0

    Vendr 2.0.4

    Vendr.Deploy 2.0.1

  • Michael Nielsen 154 posts 811 karma points
    Jan 07, 2022 @ 13:11
    Michael Nielsen
    0

    I should probably be more specific: I can restore content fine, as long as it's not a product, so the above error comes when trying to restore product nodes.

  • Matt Brailsford 4125 posts 22223 karma points MVP 9x c-trib
    Jan 07, 2022 @ 13:15
    Matt Brailsford
    0

    Hmm, looking at it, it seems to be coming from the BlockEditorValueConnector base class, and specifically a Concact call which I'd assume is this one https://github.com/umbraco/Umbraco.Deploy.Contrib/blob/v4/dev/src/Umbraco.Deploy.Contrib.Connectors/ValueConnectors/BlockEditorValueConnector.cs#L151

    My guess is, because we aren't using a settings collection, the Vendr block editors value is null and so the call to Concat doesn't like this.

    Might have to do a PR to the contrib project to null check settings before concatinating.

    Matt

  • Matt Brailsford 4125 posts 22223 karma points MVP 9x c-trib
    Jan 07, 2022 @ 13:26
    Matt Brailsford
    100

    Ok, so I've created a pull request for the Umbraco.Deploy.Contrib project which null checks the block editors Settings value before attempting to concatenate the values together https://github.com/umbraco/Umbraco.Deploy.Contrib/pull/51

    I'm not sure if you can pull the source for this PR and compile and test to make sure this resolves your issue.

    Not entirely sure why this is an issue now as It's worked for others before, but hey 🤷‍♂️

    Matt

  • Michael Nielsen 154 posts 811 karma points
    Jan 28, 2022 @ 10:35
    Michael Nielsen
    1

    Ok so I downloaded the project and compiled it and replaced the dll, and pushed to Cloud.

    That solved it, I can now restore content from Cloud to Local.

    Thanks, much appreciated! 👍💪🥳

Please Sign in or register to post replies

Write your reply to:

Draft