Why updateLookup for ChangeStreamOptions.fullDocument is ignored

On nodejs client I’m running collection’s watch method with

    fullDocument: 'updateLookup'


But the change stream document for an update operations sometimes still contains a null for fullDocument property.

What could be the pitfall here?
Is it possible to have the fullDocument property being always populated?


Ah, looks like fullDocument: null is fired if the document it self was deleted at that moment.

Actually this makes sense.

But is it the only reason for null value. So that can I relay that the null value means the record is deleted or are there any other conditions could cause the same behavior?