When building applications it's easy to focus on the happy path and forget about error scenarios. However, in the real world failures happen, and dealing with them is as important as the happy pah. Kotlin and the standard library offer some approaches for dealing with errors like nullable types and sealed classes. But for many robust applications that might not be enough! I will present the tools and techniques offered by the Arrow library that builds on top and complements what Kotlin offers and helps you achieve composable error handling logic with a minimal amount of boilerplate code. After attending this talk, you will have yet another tool in your toolbelt that will help you build robust applications.