if (fieldNullCount < 0)
{
throw new InvalidDataException("Null count length must be
>= 0"); // TODO:Localize exception message
}
Above from Ipc/ArrowReaderImplementation.cs.
pyarrow is fine with -1, probably due to the following. It would be nice
if C# were brought up to speed.
// When slicing, we do not know the null count of the sliced range without
// doing some computation. To avoid doing this eagerly, we set the null count
// to -1 (any negative number will do). When Array::null_count is called the
// first time, the null count will be computed. See ARROW-33
constexpr int64_t kUnknownNullCount = -1;