Here are some tips from Dicor about how to locate roof leaks.
Being careful, get on your roof and feel around. Soft spots can indicate loose roofing material and damage to the substrate, composed of anything from 1/4-inch luaun to 3/4-inch plywood layered over trusses. Structural integrity can be seen by looking for low spots or ripples in the roofing, which means the roofing material or substrate is failing. That can lead to cracked substrate and areas of depression where water can pool and eventually cause further damage and leaks.
With rubber roofs (EPDM or TPO), look for areas that may be swollen or uneven in thickness, including the “ripple effect.” Cleaners that use petroleum distillates (including many household cleaners) can loosen the roofing material from the substrate, compromising the roofing’s integrity and making it more vulnerable to damage.
Check the sealant around the edges and around skylight hatches, antennas and other objects that stick out of your roof. See if the sealant is cracked or loose (can you pull some of it off?) or curled at the edges — a prime source for leaks. Also, look for dirt streaks heading underneath seals in low spots. If you pull on the loose sealant and the dirt continues underneath then water is probably getting past the sealant and might have caused water damage in the structure.
Regular inspections can help you identify a problem when something “looks different” from your previous inspection and can prevent leak problems before they cause costly damage.