This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Express consistently crashing with System.OutOfMemoryException error on Win 10

I have been using Garmin Express 5.1.1.0 on Windows 10 up until today without any issues. However, today I cannot seem to perform any activities within this program without it crashing. I am able to start the application, and my devices are listed properly in the window. However any attempt to add a device, remove a device, or check for updates on a device causes the application to crash after it is "thinking" for approximately 20 to 30 seconds. Here are some details from the event viewer related to the application crashing.

Each time the application crashes, it throws two errors in the event viewer: First, event ID 1026, followed by event ID 1000.

Here's the information for the first error (event ID 1026)
Application: express.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.OutOfMemoryException
at System.String.ReplaceInternal(Char, Char)
at System.Diagnostics.StackTrace.ToString(TraceFormat)
at System.Diagnostics.StackTrace.ToString()
at System.Runtime.Diagnostics.DiagnosticTraceBase.StackTraceString(System.Exception)
at System.Runtime.Diagnostics.EtwDiagnosticTrace.WriteExceptionToTraceString(System.Xml.XmlTextWriter, System.Exception, Int32, Int32)
at System.Runtime.Diagnostics.EtwDiagnosticTrace.ExceptionToTraceString(System.Exception, Int32)
at System.Runtime.Diagnostics.EtwDiagnosticTrace.GetSerializedPayload(System.Object, System.Runtime.Diagnostics.TraceRecord, System.Exception, Boolean)
at System.Runtime.TraceCore.ThrowingEtwException(System.Runtime.Diagnostics.EtwDiagnosticTrace, System.String, System.String, System.Exception)
at System.Runtime.ExceptionTrace.TraceEtwException(System.Exception, System.Diagnostics.TraceEventType)
at System.ServiceModel.Diagnostics.ExceptionUtility.ThrowHelper(System.Exception, System.Diagnostics.TraceEventType, System.Runtime.Diagnostics.TraceRecord)
at System.ServiceModel.Channels.ServiceChannel+SendAsyncResult.FinishSend(System.IAsyncResult, Boolean)
at System.ServiceModel.Channels.ServiceChannel+SendAsyncResult.SendCallback(System.IAsyncResult)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(System.IAsyncResult)
at System.Runtime.AsyncResult.Complete(Boolean)
at System.ServiceModel.Dispatcher.DuplexChannelBinder+AsyncDuplexRequest.Done(Boolean)
at System.ServiceModel.Dispatcher.DuplexChannelBinder+AsyncDuplexRequest.Abort()
at System.ServiceModel.Dispatcher.DuplexChannelBinder.AbortRequests()
at System.ServiceModel.Dispatcher.DuplexChannelBinder.EndTryReceive(System.IAsyncResult, System.ServiceModel.Channels.RequestContext ByRef)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(System.IAsyncResult, System.ServiceModel.Channels.RequestContext ByRef)
at System.ServiceModel.Dispatcher.ChannelHandler.EndTryReceive(System.IAsyncResult, System.ServiceModel.Channels.RequestContext ByRef)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(System.IAsyncResult)
at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(System.IAsyncResult)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(System.IAsyncResult)
at System.Runtime.AsyncResult.Complete(Boolean)
at System.ServiceModel.Channels.TransportDuplexSessionChannel+TryReceiveAsyncResult.OnReceive(System.IAsyncResult)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(System.IAsyncResult)
at System.Runtime.AsyncResult.Complete(Boolean)
at System.ServiceModel.Channels.SynchronizedMessageSource+ReceiveAsyncResult.OnReceiveComplete(System.Object)
at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(System.Object)
at System.ServiceModel.Channels.StreamConnection.OnRead(System.IAsyncResult)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(System.IAsyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)
at System.Net.Security.NegotiateStream.ProcessFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
at System.Net.Security.NegotiateStream.ReadCallback(System.Net.AsyncProtocolRequest)
at System.Net.AsyncProtocolRequest.CompleteRequest(Int32)
at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32)
at System.Net.FixedSizeReader.ReadCallback(System.IAsyncResult)
at System.Runtime.AsyncResult.Complete(Boolean)
at System.ServiceModel.Channels.ConnectionStream+IOAsyncResult.OnAsyncIOComplete(System.Object)
at System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean, Int32, Int32)
at System.ServiceModel.Channels.OverlappedContext.CompleteCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)


And here is the information for the second error (Event ID 1000)
Faulting application name: express.exe, version: 5.1.1.0, time stamp: 0x587d30dc
Faulting module name: KERNELBASE.dll, version: 10.0.14393.479, time stamp: 0x58256d37
Exception code: 0xe0434352
Fault offset: 0x000da832
Faulting process id: 0x80c
Faulting application start time: 0x01d27e21eb33a8cc
Faulting application path: C:\Program Files (x86)\Garmin\Express\express.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: d50ac61d-7ace-4100-b72b-31cea8cb91b4
Faulting package full name:
Faulting package-relative application ID:


I am not sure if this is linked to how many devices I currently have added to the system. At this time I have 63 devices, It appeared to be working fine yesterday when I was adding devices, so I am not sure if some of the recent additions tipped the scale just beyond what the application can handle. Unfortunately, I am not able to remove any devices to test this theory out because the program crashes with the same errors when I attempt to do so.

If anyone else here has encountered this error and has found a solution, I would greatly appreciate any tips that can be provided.
  • Description: The process was terminated due to an unhandled exception.

    I have a similar problem; the leading stack trace on Windows 10 is this one
    Application: express.exe
    Framework Version: v4.0.30319
    Description: The process was terminated due to an unhandled exception.
    Exception Info: System.Xml.XmlException
    at System.Xml.XmlTextReaderImpl.Throw(System.Exception)
    at System.Xml.XmlTextReaderImpl.Throw(System.String, System.String[])
    at System.Xml.XmlTextReaderImpl.ParseText(Int32 ByRef, Int32 ByRef, Int32 ByRef)
    at System.Xml.XmlTextReaderImpl.ParseText()
    at System.Xml.XmlTextReaderImpl.ParseElementContent()
    at System.Xml.XmlTextReaderImpl.Read()
    at System.Xml.XmlTextReader.Read()
    at System.Xml.XmlTextReaderImpl.Skip()
    at System.Xml.XmlTextReader.Skip()
    at System.Configuration.XmlUtil.StrictSkipToNextElement(System.Configuration.ExceptionAction)
    at System.Configuration.BaseConfigurationRecord.ScanSectionsRecursive(System.Configuration.XmlUtil, System.String, Boolean, System.String, System.Configuration.OverrideModeSetting, Boolean)
    at System.Configuration.BaseConfigurationRecord.ScanSectionsRecursive(System.Configuration.XmlUtil, System.String, Boolean, System.String, System.Configuration.OverrideModeSetting, Boolean)
    at System.Configuration.BaseConfigurationRecord.ScanSections(System.Configuration.XmlUtil)
    at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()

    Exception Info: System.Configuration.ConfigurationErrorsException
    at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean)
    at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(System.Configuration.ConfigurationSchemaErrors)
    at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
    at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(System.Object, System.Configuration.Internal.InternalConfigEventArgs)

    Exception Info: System.Configuration.ConfigurationErrorsException
    at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(System.Object, System.Configuration.Internal.InternalConfigEventArgs)
    at System.Configuration.Internal.InternalConfigRoot.OnConfigRemoved(System.Configuration.Internal.InternalConfigEventArgs)
    at System.Configuration.Internal.InternalConfigRoot.RemoveConfigImpl(System.String, System.Configuration.BaseConfigurationRecord)
    at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(System.String, Boolean, Boolean, Boolean, Boolean, System.Object ByRef, System.Object ByRef)
    at System.Configuration.BaseConfigurationRecord.GetSection(System.String)
    at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(System.String)
    at System.Configuration.ConfigurationManager.GetSection(System.String)
    at NLog.Config.XmlLoggingConfiguration.get_AppConfig()
    at NLog.LogFactory.get_Configuration()
    at NLog.LogFactory.GetLogger(LoggerCacheKey)
    at NLog.LogFactory.GetLogger(System.String)
    at NLog.LogManager.GetCurrentClassLogger()
    at Garmin.Omt.Service.Shared.Aspects.AnalyticAspect..cctor()

    Exception Info: System.TypeInitializationException

    Exception Info: System.Reflection.TargetInvocationException
    at System.RuntimeFieldHandle.SetValue(System.Reflection.RtFieldInfo, System.Object, System.Object, System.RuntimeType, System.Reflection.FieldAttributes, System.RuntimeType, Boolean ByRef)
    at System.Reflection.RtFieldInfo.UnsafeSetValue(System.Object, System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Globalization.CultureInfo)
    at System.Runtime.Serialization.SerializationFieldInfo.InternalSetValue(System.Object, System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Globalization.CultureInfo)
    at System.Runtime.Serialization.FormatterServices.SerializationSetValue(System.Reflection.MemberInfo, System.Object, System.Object)
    at System.Runtime.Serialization.FormatterServices.PopulateObjectMembers(System.Object, System.Reflection.MemberInfo[], System.Object[])
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(System.Runtime.Serialization.Formatters.Binary.ParseRecord)
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(System.Runtime.Serialization.Formatters.Binary.ParseRecord)
    at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(System.Runtime.Remoting.Messaging.HeaderHandler, System.Runtime.Serialization.Formatters.Binary.__BinaryParser, Boolean, Boolean, System.Runtime.Remoting.Messaging.IMethodCallMessage)
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(System.IO.Stream, System.Runtime.Remoting.Messaging.HeaderHandler, Boolean, Boolean, System.Runtime.Remoting.Messaging.IMethodCallMessage)
    at PostSharp.Aspects.Serialization.BinaryAspectSerializer.Deserialize(System.IO.Stream, PostSharp.Reflection.IMetadataDispenser)
    at PostSharp.Aspects.Serialization.AspectSerializer.Deserialize(System.Reflection.Assembly, System.String, PostSharp.Reflection.IMetadataDispenser)
    at PostSharp.ImplementationDetails_904811a4.<>z__a_2..cctor()

    Exception Info: System.TypeInitializationException
    at PostSharp.ImplementationDetails_904811a4.<>z__a_1..cctor()

    Exception Info: System.TypeInitializationException
    at PostSharp.ImplementationDetails_904811a4.<>z__a_1.Initialize()
    at Garmin.Omt.Express.App..cctor()

    Exception Info: System.TypeInitializationException
    at Garmin.Omt.Express.App.Main()
    And ultimately throws this
    Faulting application name: express.exe, version: 5.1.1.0, time stamp: 0x587d30dc
    Faulting module name: KERNELBASE.dll, version: 10.0.14393.479, time stamp: 0x58256d37
    Exception code: 0xe0434352
    Fault offset: 0x000da832
    Faulting process id: 0x1358
    Faulting application start time: 0x01d27e447d7429de
    Faulting application path: C:\Program Files (x86)\Garmin\Express\express.exe
    Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
    Report Id: 8369be47-9af7-40b2-81da-2bce953a3e4d
    Faulting package full name:
    Faulting package-relative application ID: 5.1.0 appears to work fine, until the darn Garmin Express updater pops up and forces an update to 5.1.1
  • I have been in communication with Garmin support, and they have been very helpful. While they are looking further into the issue based on the logs and information that I have sent over to them, they recommended that I try the Fleet Updater software, which is better suited for updating a large number of devices. The only caveat for others that may want to look into this is that it only supports the Fleet, nvi, zmo, and dezl series devices. Fortunately, since I am working with dezl 560 units, this should work well for me. Here is the link to the software:

    http://software.garmin.com/en-US/fleet_updater.html

    Hopefully this comes in handy for others like me with a similar situation.