#27 - more detailed error handling