Jumoo / uSync.Complete.Issues

Public Issue tracker and roadmap for uSync.Complete
https://jumoo.co.uk/usync/complete/
2 stars 1 forks source link

Remote Error: An error has occurred - Empty Exception #113

Closed AaronSadlerUK closed 3 years ago

AaronSadlerUK commented 3 years ago

I am trying to pull content from production into staging, however when I pull I get the below stacktrace, but the exception is empty

    at uSync.Publisher.Publishers.SyncPublisherBase.<EnsureRemoteResponse>d__12.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 uSync.Publisher.Publishers.SyncRealtimePublisher.<RunRemotePublishRequest>d__39.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 uSync.Publisher.Publishers.SyncRealtimePublisher.<PullExport>d__44.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 uSync.Publisher.Controllers.uSyncPublisherApiController.<PerformAction>d__10.MoveNext()
KevinJump commented 3 years ago

Hi,

Is this from the staging server ? is there anything on the production logs ? does the error report which step it was up to when it threw the error ?

AaronSadlerUK commented 3 years ago

It's on the Export step (see the screenshot below).

This is pulling from Production onto Staging, but the same happens in local too.

image image

KevinJump commented 3 years ago

Hi - is production load balanaced (well the URL you are calling?) -

I think the most likely thing is that temp folder is missing - when it gets down to it the fetch zips up the files from the previous steps, if the file isn't there it throws an exception (not directly, but it returns null, which is then checked and we throw an exception from there!)

short of that - there should be an exception in the logs of the production server if its anything else. (because past the file check it would throw if something went wrong).

Going to put a bit more logging around that bit, so this can be surfaced when it happens. (if this is it)

AaronSadlerUK commented 3 years ago

The environment is load balanced BUT not the URL this is talking to.

I can't see anything in the Umbraco Logs relating to this error

KevinJump commented 3 years ago

:( - OK. I am just looking now to see if there is anything that might be causing it, but we will probably end up adding more logging to see if we can catch it a bit better.

AaronSadlerUK commented 3 years ago

Not sure if it helps, but the node shown in the error screen is unpublished due to the parent being unpublished and with pending changes

KevinJump commented 3 years ago

OK, i will see if i can reproduce from that.

KevinJump commented 3 years ago

Hi, I haven't been able to reproduce this 😞 , but I have put more logging into the latest release (v8.9.6) to hopefully help get to the bottom of this issue.

if it is still occuring can you update and see if the logs have any more specific info in them that might help?

AaronSadlerUK commented 3 years ago

I'm just waiting on the customer to sign off a release and then I will push the updated version and see what gets logged 👍

AaronSadlerUK commented 3 years ago

I finally have a new stack trace for you:

   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) in /_/Src/Newtonsoft.Json/JsonConvert.cs:line 786
   at uSync8.ContentEdition.Mapping.Mappers.NestedContentMapper.GetExportValue(Object value, String editorAlias)
   at uSync8.ContentEdition.Mapping.SyncValueMapperCollection.GetExportValue(Object value, String editorAlias)
   at uSync8.ContentEdition.Serializers.ContentSerializerBase`1.GetExportValue(Object value, PropertyType propertyType, String culture, String segment)
   at uSync8.ContentEdition.Serializers.ContentSerializerBase`1.SerializeProperties(TObject item, SyncSerializerOptions options)
   at uSync8.ContentEdition.Serializers.ContentSerializer.SerializeCore(IContent item, SyncSerializerOptions options)
   at uSync8.BackOffice.SyncHandlers.SyncHandlerRoot`2.Export(TObject item, String folder, HandlerSettings config)
   at uSync8.BackOffice.SyncHandlers.SyncHandlerRoot`2.Export(Udi udi, String folder, HandlerSettings settings)
   at uSync.Expansions.Core.Services.SyncPackService.ExportItem(uSyncDependency dependency, String folder, String handlerSet, SyncPackOptions options)
   at uSync.Expansions.Core.Services.SyncPackService.ExportItems(SyncPackRequest request)
   at uSync.Publisher.Services.SyncPublishService.ExportItems(SyncPublishRequest request)
   at uSync.Publisher.Controllers.uSyncReceiveApiController.PullExport(PublisherActionRequest request)
   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 uSync.Publisher.Security.HMACAuthenticationAttribute.ResultWithChallenge.<ExecuteAsync>d__2.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.AuthenticationFilterResult.<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.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()
AaronSadlerUK commented 3 years ago

If it makes a difference, this site WAS using Archetype and Umbraco 7.2 which was upgraded to 7.15 and Archetype converted to Nested before being upgraded to 8.10.3

KevinJump commented 3 years ago

If possible can you get to data in that property (maybe in the DB) - I think I know what it is - but some sample data would help us confirm and work around it.

I suspect the issue is in our nestedContentMapper.cs class in the core project and how we handle the data. we have a simlar issue (https://github.com/KevinJump/uSync8/issues/237) which i think is appearing because we are attempting to get a JObject out of a child property when its an array.

Now it that case it should always be an Object not an array, but i think it can sometimes (especially when its been updated) be an array 😢

however in your case above it thinks its the nested content property being an object, when it should be an array 😢 (so the other way around).

in that instance i would like to think its as simple as adding [ and ] to the object, but i am not sure.

AaronSadlerUK commented 3 years ago

@KevinJump I no longer work for Blueprint Design.

So I am unable to provide access to any data.

https://github.com/GlenIku is their current back end developer, it won't let me tag him though

KevinJump commented 3 years ago

OK, No worries. Will see what we can get.

KevinJump commented 3 years ago

closing - if issue reoccurs post 8.10 - we will reopen