If I understood the code correctly, you were using the readFirstRecord as a way to skip records that would have GeoTiff.getMetadata return None. I changed that so it returns Option[Metadata], and actually returns the None as a Record...and those records are flattened out at the call site. This more closely matches the local ingest code, as well as buts the onus on the client for flattening out the RDD in respect to the question "who's responsible for filtering out non-GeoTIFF files when the client requests them?". 

Did I read that code correctly? So what would be a bug is taken care of at the call site with `val meta = optMetas.flatten.reduceLeft(_.merge(_))`