.NET Bugs Registry

because you are not the only one bitten by that bug

This page represents a registry of known .NET bugs. You can use it to see if the strange thing you are seeing is a known bug, or to report a new bug that you just found.

Known .NET Bugs

ID Description Probability* Severity* Fixed

Form refuses to close
If a form A contains control B that contains control C that contains control D, and D is removed while it has the focus, the user won't be able to close the form. Details.

High High 1.1
2 SoapFormatter and BinaryFormatter don't serialize some object graphs properly
If three or more classes have the same name but are in different namespaces, are part of the same hierarchy, and contain variables that have the same name, they will not be serialized properly. Details.
Low High 1.1
3 Text in the Windows Forms combo box cannot be selected using the mouse
Mouse selection simply does not work in a Windows Forms combo box. Details.
High Low 1.1
4 Arrays of structures that implement ISerializable do not deserialize correctly
High High 1.1

Windows.Identity doesn't work under Windows 98
On Windows 98, You cannot use the Windows.Identity to retrieve the user login name, it returns a system level token and a null user name is returned when you access the .Name Property. Details.

Low Medium No

C# optimizer produces bad code when a try-finally block is inside if-else
If a try-finally block is the last thing inside the if block of an if-else statement, the code inside the else block is always executed when compiling in Release mode. Details.

High High 1.1

Structs within structs cannot be deserialized
If you have a struct A inside struct B, and If a struct A is inside struct B which is inside object C, deserializing is going to throw a SerializationException.  Details.

Medium Low 1.1

Problems removing an ActiveX control from its parent
If an ActiveX control is removed from its parent, any action that makes the parent invisible, such as closing the form on which it is on, throws an exception.  Details.

Medium High 1.1

Font.GdiCharSet hardcoded to 1
The property GdiCharSet of the font class is hard-coded to 1.  Details.

Low Low No

.NET Runtime leaks large chunks of memory
If you allocate a block of memory larger than some treshold, the .NET garbage collector will never reclaim it. Details.

High High 1.1

Instances of NumericUpDown and DomainUpDown are leaked
It seems that the NumericUpDown and DomainUpDown controls forget to remove a listener to a global event, thus always staying locked in memory. Details.

High High No

SoapFormatter chokes on some strings
It seems SoapFormatter cannot handle strings that contain characters in the range 0x01 - 0x1f. Details.

High High No

FileStream becomes unusable when writing to a removable drive
When writing to a FileStream on a removable drive, and the FileStream gets out of space, it sometimes gets in a state where no other method can be called on the stream, not even Dispose. Details.

Medium Medium No

Mixed-mode assemblies can deadlock
C++ .NET apps can deadlock on startup. Details.

Low High No

ComboBox Data Binding Bug
ComboBox doesn't update the data through data binding when its style is set to DropDownList. Details.

Medium Medium No

Each Windows Form leaks two GDI handles

High High No

Alocation fails for certain sizes
If you try to allocate an array with a size range between 0x027fefbd and 0x027fffec, the framework throws exceptions. This range corresponds to memory block of little under 40MB. Details.

Medium High No

No way to access Environment.HasShutDownStarted
This property is not static even though it should be.

Low Low 1.1

Thread.Abort cannot abort suspended threads
If a thread is suspended, trying to abort will not work and the CPU will be pegged to 100 percent. Details.

Low High No

Control.Width and Height are silently truncated to 32,767
If you attempt to set a control's Width or Height property to a number larger than 32,767 it will be truncated. Details.

Low Low No

ListView.Cursor set property has no effect.

Low Low No
22 RegistryKey.SetValue does not store large integers as DWORD
Call RegistryKey.SetValue with an integer over 2,147,483,647 will result in the value being stored as string, and not as a DWORD. Details.
Low Medium No

Panel doesn't repaint when parent Panel is disabled
If you have a Panel inside a Panel, and the parent Panel gets disabled, the child panel won't repaint. Details.

Low Low No

* Probability represents the probability that you will encounter this bug. Severity measures how much the bug hurts when it happens.

How to Report a New Bug

To report a bug that's not on the above list, please e-mail me with the following info:

  1. A short description of the bug
  2. Steps to reproduce
  3. What happens
  4. What should happen instead
  5. Any additional info such as code that demonstrates the problem, workarounds, etc.

If you have set up a web page that contains details about this bug I'll just post a description and a link to your page. Otherwise I'll put the text here and credit you with finding the bug.


Content of this site is Dejan Jelovic. All rights reserved.