more precise error reporting