QuickBooks Error Code 343

Let’s Dive in to see…

How to Fix QuickBooks
Error C=343

QuickBooks Online

QuickBooks Internal Error · C= Series

How to Fix QuickBooks Error C=343

QuickBooks displays: "An error has occurred in QuickBooks. Please restart QuickBooks to try again. C=343" or "[filename].dll is not an executable file. C=343"

Error C=343 is caused by unregistered or missing Microsoft Core XML Services (MSXML) DLL files. At QuickFix Bookkeeping, the specific fix is registering MSXML3.dll via the Run dialog (32-bit) or Command Prompt (64-bit). This is faster than reinstalling QB and resolves most C=343 cases in under 2 minutes.

The QuickFix Bookkeeping Distinction — The Two Specific Fixes for C=343

C=343 has two distinct causes requiring different fixes. The error message text tells you which one.

Cause A — MSXML3.dll not registered

Message shows generic "C=343" or mentions a .dll file. Fix: 32-bit: Windows + R → type regsvr32 MSXML3.dll → OK. 64-bit: open CMD as admin → cd C:\Windows\SysWOW64 → run regsvr32 MSXML3.dll then regsvr32 MSXML4.dll. Restart QB.

Cause B — QB running in Windows Compatibility Mode

C=343 appears with no dll mention. Fix: right-click QBW32.exe → Properties → Compatibility tab → uncheck "Run this program in compatibility mode for" → OK. Compatibility mode forces QB to run as an older Windows version, causing DLL registration failures.

How to check your Windows version (32-bit or 64-bit): Windows + Pause/Break → System type shows "32-bit operating system" or "64-bit operating system." Use the 32-bit fix on 32-bit Windows; use the 64-bit fix (SysWOW64) on 64-bit Windows. On 64-bit, you need to register both MSXML3.dll and MSXML4.dll from the SysWOW64 folder specifically — the regular System32 folder will not work for QB's 32-bit application files.

What Causes QuickBooks Error C=343?

MSXML3.dll Unregistered or Corrupt

Primary cause — Microsoft Core XML Services DLL files are required for QB to parse XML data in company files and payroll templates. If MSXML3.dll (or MSXML4.dll on 64-bit) is not registered in Windows or is damaged, QB can't use it and reports C=343. Running regsvr32 re-registers the file in the Windows registry.

QB Compatibility Mode Enabled on QBW32.exe

When Windows Compatibility Mode is checked on QBW32.exe (telling Windows to run QB as Windows XP or Vista), QB's DLL loading mechanism behaves differently than on the current Windows version. This mismatch causes C=343 because QB can't load MSXML in the compatibility environment. Unchecking compatibility mode resolves this immediately.

Outdated or Discontinued QB Version

Older QB versions that no longer match the current Windows and DLL environment produce C=343 because QB's internal XML handling code expects older library versions that aren't compatible with updated Windows DLLs. Updating QB to a supported version resolves this variant.

Payroll Template or Company File Trigger

C=343 sometimes appears specifically when accessing payroll in QB or editing payroll templates. The payroll module uses MSXML extensively for form processing. If C=343 only appears in payroll/templates but not on the general QB screen, check and fix the payroll template first (QB → Lists → Templates → find damaged template → delete or restore from backup).

Windows Update Disrupted MSXML

Windows updates can occasionally affect MSXML component registrations — either by updating MSXML files without properly re-registering them, or by changing permissions on the DLL files. QB finds MSXML in an inconsistent state and reports C=343. Running regsvr32 after a Windows update fixes this.

Damaged QB Installation Files

A corrupted QB installation can leave MSXML DLL files missing or in a damaged state. The QB Install Diagnostic Tool scans and repairs MSXML alongside other Windows components needed for QB. This is the right tool when regsvr32 registration succeeds but QB still shows C=343.

How to Fix QuickBooks Error C=343

Try the 2-minute MSXML registration first, then check compatibility mode — these fix most C=343 cases without any reinstall.

METHOD 1 Register MSXML3.dll (and MSXML4.dll on 64-bit) 2 minutes — resolves most C=343 cases
1

32-bit Windows: press Windows + R → type regsvr32 MSXML3.dll → OK. You should see a success message "DllRegisterServer in MSXML3.dll succeeded." Restart QB and retry.

2

64-bit Windows: search for cmd → right-click → Run as Administrator. Type these two commands one at a time:
cd C:\Windows\SysWOW64 → Enter
regsvr32 MSXML3.dll → Enter (wait for success message)
regsvr32 MSXML4.dll → Enter (wait for success message)
Restart QB. If you get an error on MSXML4.dll, proceed to Method 3 (reinstall MSXML).

METHOD 2 Uncheck Compatibility Mode on QBW32.exe Compatibility mode forcing QB to run as old Windows
1

Navigate to C:\Program Files\Intuit\QuickBooks → find QBW32.exe → right-click → Properties → Compatibility tab → if "Run this program in compatibility mode for" is checked → uncheck it → Apply → OK. Restart QB. Also do the same on the QB desktop shortcut: right-click QB shortcut → Properties → Compatibility → uncheck if enabled.

METHOD 3 Reinstall Microsoft Core XML Services (MSXML.msi) MSXML files missing or regsvr32 failed
1

Search Google for "Microsoft Core XML Services download" → find the official Microsoft download page → download msxml.msi → double-click to install → follow on-screen instructions → restart. After reinstalling, run the regsvr32 commands from Method 1 to ensure the newly installed files are properly registered. Restart QB and test.

METHOD 4 Update QB + Run Install Diagnostic Tool + Open in Safe Mode Outdated QB or damaged installation after MSXML fix
1

Update QB: Help → Update QB Desktop → Reset Update → Get Updates → restart. Run Install Diagnostic Tool: Tool Hub → Installation Issues → QB Install Diagnostic Tool → run → restart. Open QB in Safe Mode: hold Ctrl → double-click QB icon → No Company Open window appears → then try File → Open or Restore Company. Safe Mode bypasses some DLL conflicts that cause C=343 and can confirm whether the issue is program-level or system-level.

Quick Reference

SituationCauseStart with
C=343 — general QB startup or company fileMSXML3.dll not registeredMethod 1 — regsvr32 MSXML3.dll
C=343 after Windows or QB upgradeCompatibility mode or new OS mismatchMethod 2 — uncheck compatibility mode
C=343 only in payroll/templatesDamaged payroll templateCheck and restore payroll template first
regsvr32 errors — DLL files missingMSXML files not installedMethod 3 — reinstall MSXML.msi

Frequently Asked Questions

What does regsvr32 do and is it safe to run?
regsvr32 is a built-in Windows utility that registers or unregisters Dynamic Link Library (DLL) files in the Windows registry. When you run "regsvr32 MSXML3.dll," Windows writes registry entries that tell programs where to find the MSXML3.dll file and how to call its functions. Running it for QB is safe — it only affects the registry entries for MSXML3.dll and doesn't modify any actual DLL files or your data. It's a standard Windows operation used by Microsoft and software vendors. You'll see a small popup confirming success ("DllRegisterServer in MSXML3.dll succeeded") or failure. Running it requires that the DLL file actually exists in the right location — if you get an error saying the file can't be found, use Method 3 to reinstall MSXML first.
Why does 64-bit Windows need SysWOW64 for this fix?
QuickBooks Desktop is a 32-bit application, even on 64-bit Windows. On 64-bit Windows, there are two sets of system DLL files: 64-bit DLLs in C:\Windows\System32\ and 32-bit DLLs in C:\Windows\SysWOW64\ (WOW64 stands for Windows on Windows 64). When QB (a 32-bit app) calls MSXML3.dll, it must use the 32-bit version in SysWOW64, not the 64-bit version in System32. If you run regsvr32 MSXML3.dll from System32, you'll register the wrong version and QB still can't find what it needs. Always navigate to C:\Windows\SysWOW64 first when running these commands on a 64-bit system.
Is Error C=343 related to company file damage?
Usually not — C=343 is almost always a Windows/DLL issue, not a company file problem. Your accounting data is safe. The C= series errors are QB internal processing errors related to how QB uses Windows components, not errors reading or writing your financial data. However, if C=343 appears only when opening a specific company file and not a sample file, the company file may have a payroll template or XML-based component that is damaged. In that case, run Verify/Rebuild Data after resolving the MSXML issue to check for data problems. The DLL registration fix should resolve C=343 regardless of which company file is open.

Related QuickBooks Errors

Error C=343 Persisting After MSXML Registration?

Let QuickFix Bookkeeping Restore Your QB.

Persistent C=343 after MSXML registration and compatibility mode fix typically indicates a deeply damaged QB installation or a specific payroll template corruption requiring specialist tools.

Book a Free 30-Minute Consultation

No obligation. Same-day response.