I believe the issue is that the code only actually runs when you calls session.run this makes debugging a nightmare. Sure TF can improve message, but it's not there yet.
IMO, TF2 should make dynamic execution first class and switch easily to static graph when you need to deploy stuff.