JSONLines normalizes CRLF and lone CR to LF for parsing, but reports lone CR because it is unusual interchange evidence.

Blank lines are invalid records

Ignoring them could silently change record positions, so every interior blank line receives its own error.

A leading BOM is rejected

The first JSON value must begin without U+FEFF so encoding cleanup is not silently hidden.