Most flaky notification tests are not failing because email is hard. They fail because the workflow has no single identity for one run. A queue event fires, one worker retries, another check polls "the inbox", and now nobody is sure which message belongs to which execution. I used to think adding more waits would fix it, but that mostly made the pipeline slower and somehow more confusing.

Why notification jobs get flaky so fast

In automation, notification checks usually break in very ordinary ways:

The test proves that a message arrived, but not that it belongs to this run.

Two jobs share one inbox or alias, so stale mail passes the check.