Quickbooks Monitor Service Crashing on Windows Server 2016 [Solved]

We are currently deploying Server 2016 at most of our clients’ offices. We are coming from Server 2008 R2 and Windows 7 environments, finally making the transition to Windows 10. After migration, we started having issues with the QBCFMonitoringService crashing.

After the service crashes, the next time an end user attempts to open a Quickbooks company file, Quickbooks displays an error. Sometimes it will open in single user mode, other times it doesn’t open at all. If you try to switch from single to multi-user mode, Quickbooks will give you an error and tell you to launch the File Doctor.

In all cases, we are running QB_SERVER_26 Version: 16.0.0.2038 (32-bit.) This seems to happen on all flavors of Quickbooks that we’ve tried: Professional, Premier, and Enterprise.

A temporary solution is to go to the server, open the Quickbooks Database Server Manager and click “Scan.” If that doesn’t work, rebooting the whole server will usually fix it, but the problem will certainly return.

Check the logs

Event viewer is your friend. Go to the Application logs on the server and try to find anything related to Quickbooks. I found two entries that seemed to happen on a consistent basis ~1 hour after the Quickbooks Service starts.

Application Error:

Faulting application name: QBCFMonitorService.exe, version: 4.0.6289.1572, time stamp: 0x58d02bf0
Faulting module name: KERNELBASE.dll, version: 10.0.14393.1198, time stamp: 0x5902845a
Exception code: 0xe0434352
Fault offset: 0x000da9f2
Faulting process id: 0x1044
Faulting application start time: 0x01d2cd7da9b2db16
Faulting application path: C:\Program Files (x86)\Common Files\Intuit\QuickBooks\QBCFMonitorService.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 85bf517c-e621–452b-8004-b5f42730cb4b

.NET Runtime

Application: QBCFMonitorService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.UnauthorizedAccessException
 at System.IO.__Error.WinIOError(Int32, System.String)
 at System.IO.File.InternalDelete(System.String, Boolean)
 at System.IO.File.Delete(System.String)
 at Intuit.SBM.DataHelper.CFScan.CFWatcher.DeleteNdFile(System.String)
 at Intuit.SBM.DataHelper.CFScan.CFWatcher.OnDeleted(System.Object, System.IO.FileSystemEventArgs)
 at System.IO.FileSystemWatcher.OnDeleted(System.IO.FileSystemEventArgs)
 at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32, System.String)
 at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32, UInt32, System.Threading.NativeOverlapped*)
 at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

The .NET error seemed to show a read/write issue, which probably was the result of bad permissions, a bug, or faulty hardware. I quickly ruled out faulty hardware because this was happening on every server that was recently upgraded to Server 2016. It would be highly unlikely for all of them, at the exact same time, to start having the exact same faulty hardware issue.

The Cause

After some research, I concluded that this problem was being caused by Quickbooks Auto Data Recovery. ADR silently creates backups of your company files about 60 minutes after the Quickbooks service starts. In newer versions of Quickbooks, there’s no way to turn it off, but we wouldn’t want to risk doing that anyways.

Another blogger had these same problems back in 2013. They were able to “solve” it by setting the QB Monitor Service to automatically restart upon crash. This is a band-aid at best, but I still tried it. It didn’t work.

The Fix

I do not know if I’m missing some underlying issue, but addressing all of the items below fixed the problem on all of our servers.

Please always make backups before making changes! Any time “delete” is mentioned throughout this article, you should make backup first.

.DSN .ND Folder Permissions

It’s important that QBDataServiceUser26 and SYSTEM have Full Control of the parent directory of your Quickbook’s shared folder. This wasn’t a problem on our servers, but I thought it worth mentioning as others have had this issue.

For example: if you have your Quickbooks Company Files in C:\Share\Quickbooks, then the parent folder is C:\Share. The Quickbooks Server will create a .DSN and .ND file in C:\Share, so QB needs to have proper read/write access to that folder.

If you are migrating from another server, do not copy the .DSN and .ND files. The Quickbooks service will create these files automatically.

QuickBooksAutoDataRecovery folder

With the Quickbooks service stopped, delete the existing QuickBooksAutoDataRecovery folder and create a new one. Add Everyone and provide Full Control.

Disable User Account Control on Quickbooks Servers

Disabling UAC through the Control Panel on Server 2016 seems to result in some glitches. To truly disable UAC on Server 2016 / Windows 10, manually import a registry key, use group policy, or just run this from an elevated cmd.exe window:

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

Delete the config on the client computers

If this was a migration from an old Quickbooks server, it can’t hurt to delete the EntitlementDataStore.ecml and QBWUSER.ini files on each computer. Doing this will reset their server connections and company file settings, which is exactly what you want after a migration.

Be aware: you’ll have to re-activate Quickbooks again using a zip code or phone number.

Make the Quickbooks user an admin

If you’re still have trouble, you can always make the Quickbooks user account an administrator. However, only do this last step if absolutely necessary as it could pose a security risks to your server.

One such risk is for those running Remote Desktop Services. By default, members of the Administrators group are also members of the RDP Users group. By adding QBDataServiceUser26 to the Administrators group, you are inherently permitting someone to login remotely using that account.

In our situation, these servers do not have any publicly exposed ports and we are not running any RDP services. If you are in a similar situation, it’s probably safe to add the QBDataServiceUser26 to the Administrators.

Reboot

You’ll want to reboot after doing all of these steps.


If you’ve followed the aforementioned steps, Quickbooks Monitor Service should finally stop crashing! If you have anything to add, have a question, or see a mistake, please leave a comment below.