Could not find com.***.tools.build:gradle:2.3.3

Everything was fine yesterday. You were cranking out features like a react-native wizard but this morning you awoke to failing builds with errors like:
WTF?
What happened? You didn’t change anything. Looks like your dependencies were pulled right out from under you as Google or some other vendor moved their repos around breaking your build.
Fear not my friend
While it may take some searching it shouldn’t be too difficult to determine where the dependency has gone. In my case google-services was moved from the main Google maven repository to a repository specific to Android Tools:
But wait there’s more…
What if this problem crops up in a dependency? Yeah you could patch the package or fork it and submit a PR to fix it upstream (and you should, please) but depending on how quickly you need to get that build there is another way. Gradle allows configuring subprojects from the root build.gradle file like so:
That’s all folks!
Now that your native configuration is fixed you can go back to figuring out just why undefined is not an object and what exactly invariant violation means. Happy coding!
Special Thanks
Special thanks to Leon Kim for jumping in to help me with this specific issue and to Jamon Holmgren for encouraging me to blog about it. I hope it helps you out.