Multiple users unable to open SourceTree at the same time in a VM
Asked by Victor Ramirez:

I have a VM with Windows server 2019. In this server, I have multiple users with individual SourceTree installations but we are facing a problem where only one user is able to execute SourceTree at the time. Any other users who attempt to load the software while another user has it open will get it to crash. We have tried to reinstall it multiple times following articles found in the community with no luck.

**The Application error log:**

Faulting application name: SourceTree.exe, version: 3.4.4.0, time stamp: 0x604ef680  
Faulting module name: KERNELBASE.dll, version: 10.0.17763.1879, time stamp: 0x36bd1a29  
Exception code: 0xe0434352  
Fault offset: 0x0000000000039689  
Faulting process id: 0x5b98  
Faulting application start time: 0x01d7412b54c6fd91  
Faulting application path: C:\\Users\\vramirez1\\AppData\\Local\\SourceTree\\app-3.4.4\\SourceTree.exe  
Faulting module path: C:\\Windows\\System32\\KERNELBASE.dll  
Report Id: 77a5da35-7269-4054-af34-b8326395fb09  
Faulting package full name:  
Faulting package-relative application ID:

.NET Runtime error log:

**Application: SourceTree.exe**   
Framework Version: v4.0.30319  
Description: The process was terminated due to an unhandled exception.  
Exception Info: System.ComponentModel.Win32Exception  
at System.Diagnostics.ProcessManager.OpenProcess(Int32, Int32, Boolean)  
at System.Diagnostics.Process.GetProcessHandle(Int32, Boolean)  
at System.Diagnostics.Process.Kill()  
at SourceTree.Security.PageantSshKeyAgent.Kill()  
at SourceTree.Security.PageantSshKeyAgent.Launch(Boolean, System.String)  
at SourceTree.Security.DefaultSshKeyManager.LaunchSshAgent(Boolean, System.String)  
at SourceTree.Security.DefaultSshKeyManager.LaunchSshAgent(Boolean)  
at SourceTree.AppRoot.DoStartupTasksAfterFirstWindowDisplayed()  
at SourceTree.MainWindow.OnContentRendered(System.EventArgs)  
at System.Windows.Window.\<PostContentRendered\>b__202_0(System.Object)  
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)  
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)  
at System.Windows.Threading.DispatcherOperation.InvokeImpl()  
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)  
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)  
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)  
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)  
at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)  
at System.Windows.Threading.DispatcherOperation.Invoke()  
at System.Windows.Threading.Dispatcher.ProcessQueue()  
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)  
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)  
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)  
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)  
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)  
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)  
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)  
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)  
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)  
at System.Windows.Application.RunDispatcher(System.Object)  
at System.Windows.Application.RunInternal(System.Windows.Window)  
at SourceTree.App.Main()

**Log File in \\Local\\Atlassian\\SourceTree:**

2021-05-04T16:28:46: LogHost: Initializing to normal mode  
2021-05-04T16:28:48: LogHost: SuppressChangeNotifications was called (perhaps via AddRange), yet you do not  
2021-05-04T16:28:48: LogHost: have a subscription to ShouldReset. This probably isn't what you want, as ItemsAdded  
2021-05-04T16:28:48: LogHost: and friends will appear to 'miss' items  
2021-05-04T16:28:48: Could not obtain git dir, is not a git repo.


Answers:
author: Victor Ramirez
body: This issue was resolved following these steps:

1. Uninstall SourceTree from the conflicting sessions
2. Clear all SourceTree files from the conflicting sessions
3. Reboot the VM
4. Install SourceTree for each account **one by one**
5. Reboot the VM

Best!


Tags: crash

multi-tenant

user

virtual-machine