Why not throw errors always like built-in APIs do. Is this problem recoverable?