How to fix a fatal exception error

Updated: 09/12/2023 by Computer Hope
Windows blue screen of death

Microsoft Windows and software use exceptions to allow Windows or other software to communicate in layers and communicate errors or exceptions. If a program is given an invalid or unknown exception, you encounter a fatal exception. Fatal exceptions are also called a Fatal 0E or improperly as a Fatal OE.

When a fatal exception is encountered, the error is in the following format.

A fatal exception <YZ> has occurred at xxxx:xxxxxxxx

In the above example, the YZ represents the actual processor exception; this can range from 00 to 0F. Each of these processor exceptions is explained under extended information.

After the processor exception is the enhanced instruction pointer to the code segment and the 32-bit address where the error exception has occurred.

Search for the error

Often, the easiest and fastest method to locate what's causing a fatal exception is to search for the error. However, knowing what to search for may be difficult because of the cryptic fatal exception messages. Below are tips on how to search for these errors.

  1. The fatal exception has a two-character code. For example, if the "0E" is present, use this as part of your search.
  2. Next, the error message should contain a pointer (e.g., "0028:c001e36"). Although it may be in a search, it's usually unique to your computer. If you're not finding any search results, exclude this from your search.
  3. Finally, many fatal exception error messages contain a file that generated the error, often a VXD (Virtual Device Driver) file. If the fatal exception error references a .VXD file, include this in your search. The VXD file may also be listed as "VXD VWIN32," which is vwin32.vxd.

If searching for the fatal exception error does not return results or help resolve your issue, continue to the following sections.

Revert Windows to an earlier copy

If this has recently started occurring, and you're running Windows XP or later, restore Windows to an earlier copy.

Update software or check for software patches

If you are experiencing invalid page faults in only one program, verify that the program is compatible with the computer's operating system. Also, check with the manufacturer or vendor of the program to see if there are any available patches or updates.

It is also important to have all the latest Windows updates.

Hardware drivers

If fatal exceptions happen when using a hardware device (e.g., when you print), the device's drivers either conflict with another device, corrupt, or have other errors.

Video drivers are also notorious for causing fatal exception error messages. Because the video card is always used, it's difficult to know if it's causing the error. Therefore, we always recommend having the latest video drivers on your computer.

Visit the manufacturer's website and get the latest software and drivers. See the computer drivers page for a listing of hardware companies.

Recently installed software or hardware

If you have recently installed new software or hardware, uninstall or reinstall it to verify it is not causing your issue. With a hardware device, visit the manufacturer's website and get the latest software or drivers. See the computer drivers page for a listing of hardware companies.

Remove all TSRs

Turn off any TSRs or programs running in the background since fatal exception errors can be caused by conflicts between two or more open and running programs.

Delete all program temporary files

Delete all temporary files that may still be on the hard drive from currently or previously running programs.

Overclocked computer

If you have overclocked any component in the computer, set the computer to its factory settings to verify that the overclocked component is not causing the issue.

Verify your computer has more than 200 MB available

If your computer is running low on hard drive space, your Windows swap file cannot increase in size when needed, which causes errors.

Run ScanDisk and Defrag

Run ScanDisk and Defrag on the hard drive. The hard drive may have an issue, causing the swap file or data files to become corrupt or invalid.

Heat-related issue

Verify that all fans in your computer are properly working. If all fans work, you may not have enough fans, and your computer is overheating. An overheating computer can cause multiple issues, including fatal exceptions.

Disable External Cache in CMOS

If available, enter your computer's CMOS setup and turn off the external cache. If this resolves your issue, you are likely encountering a heat-related issue.

CPU Core Voltage

If available, verify in the CMOS setup that the core voltage of the CPU (central processing unit) is set to the factory specification. Consult your motherboard documentation, which is on the website of your motherboard manufacturer.

Bad memory, invalid bits, or physically bad memory

Bad computer memory is also a common cause of fatal exception errors. If you recently added memory to the computer, we recommend removing it first to verify you're not experiencing conflicts.

If no memory was recently added to the computer and you tried all the above recommendations, test your computer memory for errors.

Extended Information

Below is a listing of the commonly experienced processor exceptions ranging from 00 to 0F.

00 = Divide Fault

Division by zero is attempted or if the result of the operation does not fit in the destination operand.

02 = NMI interrupt

Interrupt 2 is reserved for the hardware non-maskable interrupt condition. No exceptions trap through interrupt 2.

04 = Overflow trap

INTRO instruction was executed, and the OF bit is set to 1.

05 = Bounds Check fault

The array index is out of range.

06 = Invalid Opcode fault

This error is caused by one of the below conditions.

  1. Processor attempting to decode a bit pattern that does not correspond to any legal computer instruction.
  2. Processor attempting to execute an instruction containing invalid operands.
  3. Processor attempting to execute a protected-mode instruction while running in virtual 8086 mode.
  4. Processor attempting to execute a LOCK prefix with an instruction that cannot be locked.

07 = Coprocessor not available fault

This error can occur if no math coprocessor is present. This error can also occur when the math coprocessor is used and a task switch is executed.

08 = Double Fault

This error occurs when processing an exception triggers a second exception.

09(0D) = Coprocessor Segment Overrun

The floating-point operand is outside the segment.

10(0Ah/0A) = Invalid Task State Segment Fault

Multiple possible causes exist, as the Task State Segment contains multiple descriptors.

11(0Bh) = Not Present Fault

The not present interrupt allows the operating system to implement virtual memory through the segmentation mechanism. 0B fault occurs when this segment is not available.

12(0Ch) = Stack Fault

Instruction refers to memory beyond the limit of the stack segment.

13(0dh) = General Protection Fault

Condition is not covered by any of the other processor exceptions. The exception indicates that this program was corrupted in memory, resulting in the immediate program termination.

14(0eh) = Page Fault

The paging protection rule is violated. In other words, when the retrieve fails, the data retrieved is invalid, or the code that issued the fault broke the protection rule for the processor.

16(10h) = Coprocessor error fault

An unmasked floating-point exception has signaled a previous instruction.

17(11h) = Alignment Check Fault

Only used on 80486 computers. Caused when code executing at ring privilege 3 attempts to access a word operand that's not divisible by four, or a long real or temp real whose address is not divisible by eight.