more fine-grained error reporting