The answer to 'why is my water heater foul smell' is that a foul odor coming from your water heater is usually caused by a buildup of bacteria in the tank. This can happen when the water temperature is too low, allowing bacteria to grow and produce unpleasant sulfur-like smells.
Some common causes include a malfunctioning thermostat, sediment buildup, or a lack of regular maintenance. The solution is to adjust the water heater temperature to at least 140°F to kill any bacteria, flush the tank to remove sediment, and consider installing an anode rod to prevent future issues. If the smell persists, it's best to call a professional plumber to diagnose and resolve the problem.