1. Clogged filter — the #1 cause across every brand
What it is: Every modern dishwasher (Bosch, KitchenAid, Whirlpool, Samsung, LG, GE, Maytag) has a fine mesh filter at the bottom of the tub that captures food particles. If it isn't rinsed every 2–4 weeks, it clogs — and the wash pump just recirculates dirty water back onto the dishes. Symptom: gritty residue, food bits redeposited on top-rack glassware, smell. We find this on roughly 4 in 10 'not cleaning' calls.
Fix: Pull the filter assembly (twist counter-clockwise on Bosch / KitchenAid; lift-out on Whirlpool / Samsung / LG / GE), rinse under hot water with a soft brush, clear the sump screen, reseat. Run an empty hot-cycle with citric acid or a dishwasher cleaner.
Typical all-in: DIY · $0 if it's a filter clean
2. Calcified or food-blocked spray arms
What it is: Twin Cities municipal water runs hard (12–20 gpg in most suburbs). Calcium and food debris block the small jet holes on the upper and lower spray arms — water sprays where it can, not where it should. Symptom: top rack cleans poorly while bottom rack is okay (or vice versa), dishes facing one quadrant always come out dirty. Common across every brand past year 3 on hard water.
Fix: Pull both spray arms, clear each jet with a toothpick or pin, soak in white vinegar 30 minutes, verify free spin. Inspect upper-arm feed tube (KitchenAid / Whirlpool tall-tub) for cracks.
Typical all-in: $165–$245 all-in (includes filter + spray-arm service)
3. Failed or stuck detergent dispenser
What it is: If the dispenser door doesn't pop open during the main wash, you're cleaning with rinse water — that never works. Symptom: detergent pod still sitting in the closed dispenser at end of cycle, or powder caked in the cup. Bosch / Siemens, KitchenAid, and Samsung dispensers are the most-frequent service.
Fix: Test dispenser wax-motor / solenoid for continuity, replace OEM dispenser assembly. Inspect door spring and latch for binding. On Bosch, verify the lower-rack tine isn't blocking the door from opening.
Typical all-in: $225–$345 all-in
4. Inlet water not hot enough
What it is: Dishwashers need 120–140 °F inlet water to dissolve detergent and break down grease. If the water heater is set under 120 °F, or the kitchen sink is far from the heater and the line is cold at start-of-cycle, the first 10 minutes of the cycle run with cold water — and detergent just clumps. Symptom: powder residue on glasses, greasy film, worse in winter.
Fix: Raise water heater to 120–125 °F. Always run the kitchen sink hot before starting a cycle. Enable the dishwasher's 'High Temp' or 'Sani-Rinse' option — it heats the wash water past 140 °F internally.
Typical all-in: DIY · $0 if it's a habit / setting fix
5. Worn wash-pump impeller or chopper blade
What it is: The wash pump impeller pressurizes the spray arms; the chopper blade (where equipped — Whirlpool / KitchenAid / Maytag, some GE) grinds food before it goes back through the filter. Worn impeller vanes drop spray pressure, a dull or broken chopper lets food chunks recirculate. Symptom: weak spray sound during the wash, food bits glued to dishes, the unit sounds normal but cleans poorly.
Fix: Remove sump cover, inspect impeller for missing / shaved vanes, inspect chopper for nicks, replace OEM as found. Always paired with a full filter + spray-arm service.
Typical all-in: $245–$385 all-in
6. Failed circulation pump or motor
What it is: The circulation pump motor moves water through the spray arms. When the motor weakens or the pump seal leaks, spray pressure drops well below spec — and nothing on the top rack gets cleaned. Symptom: quiet cycle, dishes come out warm and wet but dirty, sometimes a slow leak under the unit.
Fix: Verify pump amperage / spray pressure, replace OEM circulation pump. On Bosch / KitchenAid integrated pump-motor assemblies, the whole assembly comes out together.
Typical all-in: $385–$565 all-in
7. Loading errors — the cause we have to talk about
What it is: About 1 in 10 'not cleaning' calls is a loading problem: tall pots blocking the upper spray-arm rotation, plastic cutting boards leaning across the lower arm, the detergent dispenser blocked by a tall item in the bottom row, or bowls nested so water can't reach the inside surface. Symptom: same dishes come out dirty cycle after cycle, others are fine.
Fix: Spin both spray arms by hand with the racks loaded before closing — if either binds, reload. Keep tall items in corners. Never block the dispenser door. Run a hot pre-rinse cycle if the dishes sat all day.
Typical all-in: DIY · $0
8. Failed turbidity sensor or main control (rare)
What it is: Modern Bosch / Samsung / LG / KitchenAid dishwashers use a turbidity sensor to extend the wash if the water is dirty. A failed sensor reads 'clean' on cycle one and short-cuts the wash time. Less commonly, a main control board fails to call for the heat / detergent step. We find this on under 5% of 'not cleaning' calls.
Fix: Read fault log in diagnostic mode, replace OEM turbidity sensor or main control as found. Always verify filter / spray-arm / inlet-temp first — those are the actual cause 90%+ of the time.
Typical all-in: $345–$525 all-in