consistent error message format for users