After some trial and error, I found that updating sphere reflections don’t take effect unless the sky material is updated first. Updating a sphere reflection fixes the wrong specular reflection but the problem is sphere reflections can’t be updated dynamically since they are static at run time. Now if I remove all the reflection captures, updating sky material alone doesn’t fix it.