In my experience, the most frequent reason why a record will fail to be imported is because it contains some data that fails a validation requirement of the target field. Or is empty when it's a required value.

FWIW, whenever I set up a field to have a required value, I ALSO set it up to have a placeholder value (such as "ENTERTITLE") auto-entered, just to be on the safe side. The auto-entered value will be replaced by the incoming value during an import, UNLESS the value to be imported is null, in which case you'll get the default.