The current situation
Talk to your manager ASAP. Don't fall on your sword, simply inform them of what is unexpectedly causing a delay and inform them how long you suspect the outage will take.
Note very clearly here that "how long the outage will take" is not the same as "when you will deliver the end result". You cannot know if another unexpected delay will happen and you should not make any promises based on the assumption that it won't. It's already bitten you twice.
How to handle this in the future
Never make a promise you cannot keep. Even if it's not your fault that you couldn't keep it.
As an employee, if you want to be liked/well reviewed by management, you have to adopt a role of handling a workload without management needing to be up to date on the nitty gritty details.
But this also means that management relies on your communication to not mislead them, since they can't "know better" since they are not up to date on the minor details and whether you may or may not be contradicting them.
Take the following example: at 8am, someone asks me to pick up a task on the backlog. In either case, it will be done by 1pm, which is longer than usual because there were issues, but which of these chat histories makes me look more professional:
- [8:00am] Manager: Hey could you pick up task 123?
- [8:01am] Me: I'll look into it right away.
- [1:00pm] Me: Task 123 has been finished.
or
- [8:00am] Manager: Hey could you pick up task 123?
- [8:01am] Me: I'll look into it right away, it'll be done in 30 minutes.
- [8:35am] Me: I have to develop it from scratch because the workload exploded. It'll be done around 10am.
- [9:58am] Me: I can't work on the task right now, I have sudden guests right now. It'll be done around 11:30am.
- [11:15am] Me: Our office server is down and I cannot access site assets to make API calls. Even if that is resolved, I do I do not have enough time to test and deploy before 11:30am.
- [1:00pm] Me: Task 123 has been finished.
If management sees the second happening, they just see a bunch of excuses why the work wasn't done on time. That is a series of red flags that this employee is erratic, unable to accurately assess situation beforehand, prone to distractions (guests!?) and fails to meet their own deadlines time and time again.
By making promises you can't keep, you are giving yourself opportunities to fail. If someone repeatedly fails, even if each individual failure can be argued to not be their personal fault, that's going to leave a sour taste in people's memories.
But if you stick to the first, where you don't make any promises and simply state facts, those inferences are not made. Management doesn't know the specifics of the task (which is why they are asking you do to it), and you never made a promise that you couldn't keep.
Don't inform them of things they don't need to know (and want to be bothered with), unless they specifically ask for information, e.g.:
- [8:00am] Manager: Hey could you pick up task 123?
- [8:01am] Me: I'll look into it right away.
- [11:13am] Manager: Has task 123 been finished yet?
- [11:15am] Me: There are some issues with the office server causing a delay, I'm already looking into it.
- [1:00pm] Me: Task 123 has been finished.
This still looks professional. You come across as both handling your task and dealing with additional work as you come across it (i.e. the server issue).
Even if management had asked for an update at 8:30am, 10am and 11:15am, and you had to explain all three of the delays, it still sounds more professional because you come across as someone who handles the work independently.
If you want to prove yourself, prove yourself to be reliable, not erratic and prone to failure.