How do you know the catch block was entered? It seems to me that the only way you could know is by getting a Left, which could only be constructed from an actual Exception.
I’ll just reiterate what others have already said - you should examine the contents of the Exception in your catch block; I am partial to doing so with a debugger in an IDE, but printing the message and / or stacktrace from the Exception also work well.
Unless there is more code you haven’t shared, it is unlikely that you would receive a Left with no exception being thrown.
Might not even be an issue, just normal behavior. Keep in mind, you can’t step into everything. It is entirely normal, in any debugger, to sometimes hit an Exception and be tossed to the handler without it being obvious which line of code threw the Exception, because it came out of some library call underneath. Just because you didn’t see an explicit throw doesn’t mean there wasn’t one…