Start with what the light is saying
Twenty years of dead batteries on tailgates teaches you one thing fast: read the charger before you condemn the pack. An M12 pack that won't take a charge is usually telling you exactly what's wrong through the light pattern, and half the "dead" batteries that come across my bench charge fine once somebody translates it.
On Milwaukee's M12 chargers the legend runs like this. Steady red means it's charging, leave it be. Steady green means full. A fast-flashing red means the pack is too hot or too cold, and the charger is waiting it out on purpose. On the dual-bay chargers a slow-flashing red just means that pack is queued behind the other bay. The one that matters is red and green flashing together: the charger has flagged the pack as damaged or defective and won't push current into it.
Two different problems, two different jobs. Fast red is a temperature hold that fixes itself. Red-green is the charger accusing your battery, and even that verdict gets overturned more often than you'd think.
The temperature hold isn't a defect
Lithium-ion chemistry won't accept a charge below roughly 32F (0C), and every M12 pack has an interlock that enforces it. Same story on the hot side after you've run a pack hard in a compact tool; M12 packs live in tight housings and come off the tool warmer than an M18 would.
So if the charger lives in an unheated garage in January, or you pulled the pack straight off a long screwdriving run in July, that fast red flash is the charger doing its job. Set the pack on the bench at room temperature for 20 to 30 minutes and drop it back on. Most of the time it settles into steady red and you're done. Don't set it on a heater vent and don't put it in the freezer; room temperature, both directions.
Five checks before you spend a dime
If the light says defective, or nothing lights at all, work these in order.
- Reseat it hard, three times. Slide the pack fully home until it stops, pull it, repeat. A partial seat reads as a fault on these chargers more often than a genuinely bad cell does.
- Clean the contacts. Drywall dust and thread-cutting oil end up on M12 terminals constantly. Wipe the blades on the pack and the rail in the charger with a rag and a little isopropyl alcohol, let them dry, try again.
- Reset the charger. Pull the pack, unplug the charger from the wall, and give it about 10 seconds for the lights to die completely. Plug it back in, then insert the pack. The charger's own board can latch a fault state, and this clears it.
- Move to a wall outlet. Cheap power strips and half-dead extension cords starve chargers. Straight into the wall for the test.
- Cross-test. Known-good pack on this charger, problem pack on another charger. Ten minutes at a buddy's shop tells you which side of the connection is lying.
One platform note, since it comes up on every crew: M12 and M18 are separate systems. An M12 pack only fits the M12 bay or M12 tools, and nothing you do will change that. If your "M12 battery" won't seat at all, check that it's not an M18 pack aimed at the wrong bay.
Deep discharge and the packs that come back
A pack that got run flat and then sat in a cold trailer all winter can drop into a protective sleep the charger reads as defective. Before you write it off, leave it seated on a genuine charger for 10 or 15 minutes even while the light complains, then pull it and reseat it a few times. Some packs wake up and take a normal charge.
You'll find forum tricks about jump-starting a sleeping pack from another battery. I've seen it done and I don't recommend it: you're bypassing the protection circuit on a lithium cell, the burn risk is real, and it kills your warranty. Not worth it to save a pack that was probably on its way out anyway.
When it's genuinely done
If a room-temperature pack with clean contacts still throws red-green on two different genuine chargers, the pack is finished. M12 packs don't balance their cells, so one weak cell drifting low eventually trips the defect flag for good, and no charger will fix chemistry. Check your purchase date first, because Milwaukee warranties its batteries and a pack that died young may cost you nothing to replace. After that, replace it with a genuine M12 pack and recycle the old one at any Home Depot battery drop. Resist the no-name Amazon clones; the cells inside are the reason they're half the price.