Some pyinstrument frame trees contain branches where an identifier is missing (typically at the very top or with certain async boundaries), which crashed the aggregator with a KeyError mid-run. Short-circuit on None frames and missing identifiers so a single ugly HTML no longer kills the summary of the other few hundred.