Earlier quoted context omitted.
You directly see where the null dereference happens. But that's not necessarily where the problem actually is, because a null pointer can flow through a lot of code before it actually gets dereferenced. So "program continues to work for a while" is also a thing with them. In a language like C, a null pointer can also become an invalid non-null pointer pretty easy with pointer arithmetics.
Easy, just add "if (thing == null) return;" to the top of the function that crapped out on a null reference and close the ticket! /s
if (thing == null) return null;
more often than not. Which leads to an even more entertaining debuggin trip next time...