Type instability occurs when a variable's type can change at runtime, and hence cannot be inferred at compile-time. Type instability often causes performance problems, so being able to write and identify type-stable code is important.