I read somewhere that 0.4.6 should be backward compatible with apps written for earlier releases of the firmware. I had 4 photons and upgraded them and 2 of them started going into a red SOS flashing pattern (red LED, flashing SOS in morse code) followed by one red flash.
I tried many things including reflashing the app, pulling the 0.4.6 firmware down and recompiling my app against it, putting the Photon in safe mode & etc. Restoring the Tinker application caused the Photons not to die instantly, but reflashing my app after caused the same SOS pattern.
While I haven’t gotten it down specifically to the offending line of code, what seems to have gotten me past by the instadeath of my Photon. Specifically, I was defining a global variable which is an instance of the U8Glib library. That gets initialized very early on (since the constructor should be called even before main() as it is a global object). That, for some reason, worked in 0.4.5 but fails in 0.4.6. My temporary work-around was to replace the global object with a pointer instead and new() the object in setup().
I need to find out what part of the constructor was causing it to fail. It could also be that for global initializers the stack / heap may not be properly configured by that point? Not sure.