I have a circuit I designed in 2010. I am starting to get reports of failures of LED's in the field, and I believe this is way too short of a lifetime. Strangely, the LED's are failing shorted because there are six in a series string and two or three in the string will fail but the others remain lit. I have used an LM317 as a constant current source to the string providing 12mA. The LED's are rated at 20mA constant and allow 50mA pulsed. I have two sets that can be on depending on when my microcontroller switches them via the ULN2004 7 channel switch. I normally select the 6 green, or the 7 red LED string. I'm trying to figure out why the green LED's are failing, but the reds never fail. I think I figured it out, and seek further advice. The green LED's are sometimes pulsed at a very high rep rate of varying duty factor to make them brighten and dim in a slow undulation, just like the Apple logo in a Macbook. The forward voltage on the green LED's is 3V at 12mA, so the total string of green is 18V. I believe that when I place them in the undulation mode, the LM317 doesn't have time to stabilize its 12mA output setting, so I am spiking them with much higher currents. The open circuit voltage on the string would go to 24V, so at the very beginning of switch closure on the ULN2004, I have 24V on the series string. My immediate thought is to add a series resistor to drop the remaining 6 volts (24-18V), but I also realize that sometimes the 24V supplied to the LM317 may sometimes be 28V. Also considered an 18V Zener across the string. I'm in the middle of a move and packed up my scope, so I can't measure the size of the current spikes, but it must be substantial. Should I add another path for the LM317 output so it can stay in regulation mode at times when neither the red string or the green string are switched on?