For anyone who may know how to interpret what the cause of these exception fails are – here’s a snippet of the two exceptions from the Error.log
– first, the left-receiver check fail
– second, the changing options in the UI fail
(though without knowing the code it’s hard to see from these what a fix might be)
2021-04-14 10:54:17.664 -05:00 [ERR] #001 Sonova.Chinook.Application.BusinessServices.Fitting.GlobalFitting.Workflows.CheckReceiverWorkflow: “TestReceiver actions failed”
Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.Common.Exceptions.BinauralAggregateException: A binaural aggregate exception occured.
Left: System.Threading.BarrierPostPhaseException: The postPhaseAction failed with an exception. —> System.InvalidOperationException: ChannelSynchronization already enabled for at least one channel.
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ProtocolStackSynchronizationContext…ctor(IProtocolStack protocolStackOne, IProtocolStack protocolStackTwo)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode.EnableRemoteExecutionMode(IProtocolStack leftProtocolStack, IProtocolStack rightProtocolStack, IFittingDeviceManager fittingDeviceManager)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode…ctor(SideCollection1 connectedDevices, IFittingDeviceManager fittingDeviceManager) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralReceiverMeasurementService.<>c__DisplayClass6_0.<MeasureReceiversInternal>b__2() at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.BinauralActionHelper.EnableSynchronizedParallelExecution(Func
1 createSynchronizationToken)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.<>c__DisplayClass3_01.<ForEachParallel>b__1(Barrier b) at System.Threading.Barrier.InvokePostPhaseAction(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Barrier.FinishPhase(Boolean observedSense) --- End of inner exception stack trace --- at System.Threading.Barrier.SignalAndWait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.SideAction[TValue](Side side, TValue value, Barrier locksObtainedBarrier, Action
2 sideAction, Barrier actionsCompletedBarrier, IBinauralActionSideHelper sideHelper)
Right: System.Threading.BarrierPostPhaseException: The postPhaseAction failed with an exception. —> System.InvalidOperationException: ChannelSynchronization already enabled for at least one channel.
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ProtocolStackSynchronizationContext…ctor(IProtocolStack protocolStackOne, IProtocolStack protocolStackTwo)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode.EnableRemoteExecutionMode(IProtocolStack leftProtocolStack, IProtocolStack rightProtocolStack, IFittingDeviceManager fittingDeviceManager)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode…ctor(SideCollection1 connectedDevices, IFittingDeviceManager fittingDeviceManager) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralReceiverMeasurementService.<>c__DisplayClass6_0.<MeasureReceiversInternal>b__2() at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.BinauralActionHelper.EnableSynchronizedParallelExecution(Func
1 createSynchronizationToken)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.<>c__DisplayClass3_01.<ForEachParallel>b__1(Barrier b) at System.Threading.Barrier.InvokePostPhaseAction(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Barrier.FinishPhase(Boolean observedSense) --- End of inner exception stack trace --- at System.Threading.Barrier.FinishPhase(Boolean observedSense) at System.Threading.Barrier.SignalAndWait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.SideAction[TValue](Side side, TValue value, Barrier locksObtainedBarrier, Action
2 sideAction, Barrier actionsCompletedBarrier, IBinauralActionSideHelper sideHelper)
Server stack trace:
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.BinauralActionHelper.EvaluateAndThrowIfAggregateExceptionOccured()
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.ForEachParallel[TValue](SideCollection1 sideCollection, Func
2 getLockingToken, Action2 sideAction, IBinauralActionHelper binauralActionHelper, IStepUpdate stepUpdate, Func
1 createSynchronizationToken)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralReceiverMeasurementService.MeasureReceiversInternal(SideCollection1 receiverIdTestRanges, Boolean restoreOriginalMuteState) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralReceiverMeasurementService.MeasureReceiversAndSetMuteStates(SideCollection
1 receiverIdTestRanges)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.IBinauralReceiverMeasurementService.MeasureReceiversAndSetMuteStates(SideCollection1 receiverIdTestRanges) at Sonova.Chinook.Core.CoreServices.Palio.ReceiverIdService.TestReceiver(SideCollection
1 connectedDevices, SideCollection1 receivers, Boolean forceRestoreMuteState) at Sonova.Chinook.Application.AppServices.Communication.HiActions.AppReceiverIdService.TestReceiver(Sides sides, SideCollection
1 receivers, ICommunicationHearingSystem communicationHearingSystem)
at Sonova.Chinook.Application.BusinessServices.Fitting.GlobalFitting.Workflows.CheckReceiverWorkflow.CheckReceiverTask(IBackgroundTaskUpdate arg)
at Sonova.General.Presentation.Threading.Internal.BackgroundTask.RunOriginalTaskHandler(IBackgroundTaskUpdate taskUpdate)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Func`2.EndInvoke(IAsyncResult result)
at Sonova.General.Presentation.Threading.Internal.BackgroundTask.EndTaskTResult
at Sonova.Chinook.Application.BusinessServices.Fitting.GlobalFitting.Workflows.CheckReceiverWorkflow.DoRunInternal()
2021-04-14 10:54:23.447 -05:00 [FTL] #001 Sonova.Chinook.Application.BusinessServices.General.ExceptionHandlingService: “Unhandled UI thread exception occurred.”
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.Common.Exceptions.BinauralAggregateException: A binaural aggregate exception occured.
Left: System.Threading.BarrierPostPhaseException: The postPhaseAction failed with an exception. —> System.InvalidOperationException: ChannelSynchronization already enabled for at least one channel.
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ProtocolStackSynchronizationContext…ctor(IProtocolStack protocolStackOne, IProtocolStack protocolStackTwo)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode.EnableRemoteExecutionMode(IProtocolStack leftProtocolStack, IProtocolStack rightProtocolStack, IFittingDeviceManager fittingDeviceManager)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode…ctor(SideCollection1 connectedDevices, IFittingDeviceManager fittingDeviceManager) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralFittingService.<>c__DisplayClass11_0.<ActivateProgramInternal>b__2() at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.BinauralActionHelper.EnableSynchronizedParallelExecution(Func
1 createSynchronizationToken)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.<>c__DisplayClass3_01.<ForEachParallel>b__1(Barrier b) at System.Threading.Barrier.InvokePostPhaseAction(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Barrier.FinishPhase(Boolean observedSense) --- End of inner exception stack trace --- at System.Threading.Barrier.SignalAndWait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.SideAction[TValue](Side side, TValue value, Barrier locksObtainedBarrier, Action
2 sideAction, Barrier actionsCompletedBarrier, IBinauralActionSideHelper sideHelper)
Right: System.Threading.BarrierPostPhaseException: The postPhaseAction failed with an exception. —> System.InvalidOperationException: ChannelSynchronization already enabled for at least one channel.
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ProtocolStackSynchronizationContext…ctor(IProtocolStack protocolStackOne, IProtocolStack protocolStackTwo)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode.EnableRemoteExecutionMode(IProtocolStack leftProtocolStack, IProtocolStack rightProtocolStack, IFittingDeviceManager fittingDeviceManager)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.ChannelSynchronization.ParallelSynchronizedMode…ctor(SideCollection1 connectedDevices, IFittingDeviceManager fittingDeviceManager) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralFittingService.<>c__DisplayClass11_0.<ActivateProgramInternal>b__2() at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.BinauralActionHelper.EnableSynchronizedParallelExecution(Func
1 createSynchronizationToken)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.<>c__DisplayClass3_01.<ForEachParallel>b__1(Barrier b) at System.Threading.Barrier.InvokePostPhaseAction(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Barrier.FinishPhase(Boolean observedSense) --- End of inner exception stack trace --- at System.Threading.Barrier.FinishPhase(Boolean observedSense) at System.Threading.Barrier.SignalAndWait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.SideAction[TValue](Side side, TValue value, Barrier locksObtainedBarrier, Action
2 sideAction, Barrier actionsCompletedBarrier, IBinauralActionSideHelper sideHelper)
Server stack trace:
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.BinauralActionHelper.EvaluateAndThrowIfAggregateExceptionOccured()
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.Common.ParallelExecutor.ForEachParallel[TValue](SideCollection1 sideCollection, Func
2 getLockingToken, Action2 sideAction, IBinauralActionHelper binauralActionHelper, IStepUpdate stepUpdate, Func
1 createSynchronizationToken)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralFittingService.ActivateProgramInternal(SideCollection1 devicesToPerformOn, IBinauralActionHelper binauralActionHelper, SideCollection
1 programs)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.BinauralFittingService.ActivateProgram(ActionSide onSides, SideCollection`1 programs, ITaskUpdate taskUpdate)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Sonova.Chinook.Core.DeviceAbstraction.Palio.Communication.HearingSystem.BinauralServices.IBinauralFittingService.ActivateProgram(ActionSide onSides, SideCollection`1 programs, ITaskUpdate taskUpdate)
at Sonova.Chinook.Application.AppServices.Communication.Activation.ActivationNode.DoActivate(ActivationData activationData, ICommunicationHearingSystem communicationHearingSystem, ICommunicationTaskUpdate taskUpdate, ActionSide remainingSidesToActivate, ActivationResults activationResults)
at Sonova.Chinook.Application.AppServices.Communication.Activation.ActivationNode.Activate(ActivationData activationData, ICommunicationHearingSystem communicationHearingSystem, IHearingSystem hearingSystem, ICommunicationTaskUpdate taskUpdate, IDomainTransaction lockTransaction)
at Sonova.Chinook.Application.AppServices.Communication.Activation.ActivationNode.TryActivate(ICommunicationHearingSystem communicationHearingSystem, Action lockTransactionEnteredCallback, ActivationData activationData, ICommunicationTaskUpdate taskUpdate)
at Sonova.Chinook.Application.BusinessServices.Fitting.Communication.Activation.ActivationService.Activate(IBackgroundTaskUpdate taskUpdate)
at Sonova.General.Presentation.Threading.Internal.BackgroundTask.RunOriginalTaskHandler(IBackgroundTaskUpdate taskUpdate)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Func`2.EndInvoke(IAsyncResult result)
at Sonova.General.Presentation.Threading.Internal.BackgroundTask.EndTaskTResult
at Sonova.Chinook.Application.BusinessServices.Fitting.Communication.Activation.ActivationService.ActivateFinished(IFinishedBackgroundTask finishedTask)
at Sonova.Chinook.Application.BusinessServices.Communication.Internal.CommunicationTask.BackgroundTaskFinished(IFinishedBackgroundTask finishedTask)
— End of inner exception stack trace —
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)