The problem was caused by the coolant (Prestone).
I switched to Honda coolant 2 months ago, which solved the problem. (I connected to tap water and run it for an hour to rinse the system before switching the coolant.) Basically, Honda coolant is also silicate free as Subaru. (I believe the most of Japanese brands are ok to use in Subaru, if you flush the system completely before filling in.)