Let's say I have this architecture in my app
My question is when is the best time to handle the error?
Depends on the use case
UI
to notify user to make sure user won't just see a blank screen or experience unexpected UI. You can sealed classes in Kotlin for this case.