Here's an example.
This is the first engine start after a reflash. There is no MAF (it lives in the bottom drawer of my toolbox which is the right and proper place for it). DTCs are MIL On First Error. The engine runs, and MAF Status changes to Failed ~1.3 seconds after cranking begins. MAF table is even zeroed out for all but the first cell. Details pane shows zero DTCs.
DTCs.hpl
The point is, don't be so quick to say it's not failed properly just because you don't see the DTCs. They're there, just for whatever reason they don't show up in the log until the 2nd engine start. However if you were to read codes, live, it would show them as Current. This does make it really f'ing hard to diagnose from a logfile if it's in SD like it should be when you don't know exactly how/when the log was recorded.