0X8009035F

Fix SEC_E_POLICY_NLTM_ONLY 0X8009035F on Windows 10/11

This error pops up when Windows blocks NTLM authentication due to a policy. Here's the quick fix in Local Security Policy, plus why it happens and how to avoid it.

Yeah, that error is a pain — you're trying to connect to a server, a database, or maybe Outlook, and Windows just slams the door with 0X8009035F. Let's get it fixed.

The Fix: Adjust the LAN Manager Authentication Level

The most common cause is a security policy that tells Windows to refuse NTLM responses. The fix is to loosen that setting just enough to allow NTLM while still blocking older, weaker protocols.

  1. Press Windows + R, type secpol.msc, and hit Enter. If you get a UAC prompt, click Yes.
  2. In the left pane, expand Local Policies, then click Security Options.
  3. Scroll down and double-click Network security: LAN Manager authentication level.
  4. Change the setting to Send NTLMv2 response only. Refuse LM & NTLM. That's the default on modern Windows, but sometimes a group policy overrides it to something stricter like Send NTLMv2 response only. Refuse LM & NTLMv2 (which is the one that causes 0X8009035F).
  5. Click Apply, then OK.
  6. Close the Local Security Policy window.

After you click Apply, you won't see any immediate change — the setting just saves. You need to either restart the app that gave the error, or log off and back on to be safe. If you're on a domain, the local policy might be overwritten by a domain policy, so check that too (see below).

Now try your connection again. If it works, great. If not, move on to the next section because there's a registry tweak that does the same thing, and it can override the policy.

Registry Method (If the Policy Doesn't Stick)

Sometimes the policy is greyed out or gets reverted by a domain group policy. In that case, do this:

  1. Press Windows + R, type regedit, and hit Enter.
  2. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa.
  3. Find the value LmCompatibilityLevel in the right pane. If it's not there, right-click on the empty space, select New > DWORD (32-bit) Value, and name it LmCompatibilityLevel.
  4. Double-click it and set the value to 2. That means “Send NTLMv2 response only.”
  5. Click OK, close the registry editor, and restart your computer for the change to take effect.

After the restart, the error should be gone. The registry value is what the policy actually writes to — if you set it manually, it's hard for a policy to override it unless a domain policy is explicitly set to enforce the stricter value.

Why This Works

The 0X8009035F error means the server and the client can't agree on how to authenticate. The server is saying “I'll only accept NTLMv2” and the client is replying “I'm only sending NTLMv2, so we're good.” But then the client actually sends an LM or NTLM response because the security policy is set to refuse those, and the server rejects it. Setting LmCompatibilityLevel to 2 tells Windows to send NTLMv2 only — which is exactly what the server wants. The stricter setting (value 5) refuses LM and NTLM entirely, which is too strict for most mixed environments.

I've seen this happen on Windows 10 22H2 and Windows Server 2019 when a security admin tightened the policy “just in case.” It's a good instinct, but it breaks connections to older servers that haven't updated their NTLM handling.

Less Common Variations

If the above doesn't fix it, here are two other things to check.

1. The “Send NTLMv2 Response Only. Refuse LM & NTLMv2” Policy

That's the exact policy name that's usually the culprit. But sometimes it's set at the Default Domain Policy level, and your local change gets overwritten. To check, run gpresult /h gp.html in an elevated command prompt, open the resulting file, and look under “Security Settings” for that LAN Manager setting. If it says “Not Defined” or “Disabled”, you're fine. If it's set to a value other than 2, you need your domain admin to change it in the Group Policy Management Console.

gpresult /h C:\Temp\gp.html

2. The “Allow NTLM” Authentication Level

There's a separate policy called Network security: Restrict NTLM: Incoming NTLM traffic. If that's set to “Deny all accounts”, it will cause a similar error. Set it to “Allow all” or at least “Allow for domain accounts” depending on your security needs. That one is also in the same Security Options section.

Prevention

The real fix is to modernize your authentication. NTLM is old and weak — that's why it's being locked down. But if you can't switch to Kerberos or a certificate-based method right now, at least set the policy to a consistent level across all machines.

Make sure your server-side NTLM settings match the client. If the server is set to refuse NTLMv2, no client tweak will help — you'd have to change the server policy instead. Also, check for any third-party software that might be forcing its own NTLM policy, like some VPN clients or database drivers.

One more thing: if you're using Outlook and getting this error, check that your mail server supports OAuth2. That's a much better authentication method and avoids this whole mess. But for quick, immediate relief, the LmCompatibilityLevel setting is your friend.

Now go restart that app and get back to work.

Related Errors in Cybersecurity & Malware
Logon failure: The trust relationship between this workstation and the primary d Trust Relationship Broken – Fix Without Domain Rejoin 0X00002142 ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN (0X00002142) Fix STATUS_ACCOUNT_LOCKED_OUT (0xC0000234) or Event ID 4740 Account Locked After Too Many Failed Logins — the Real Fix 0X80110606 Fix COMQC_E_UNTRUSTED_ENQUEUER (0x80110606) in Message Queuing

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.