AWS EC2 Status Check Failed: 1/2 checks passed fix
One of two EC2 health checks failed. We'll walk through fixes from quick reboot to deeper system repair.
What this error means
You're looking at the EC2 console and see StatusCheckFailed: 1/2 checks passed. This means one of two health checks isn't happy. The two checks are:
- System status check – looks at the physical host, the network, and the underlying hardware. If this fails, it's Amazon's problem, not yours (but you still need to move the instance).
- Instance status check – looks at the OS inside your instance. If this fails, something's wrong with your OS, driver, or network config.
When you see 1/2 checks passed, you need to find out which check failed. The AWS console shows it under the Status Checks tab. Click your instance ID, then look at the Status Checks tab. It'll tell you: “System reachability check passed” or “Instance reachability check failed”.
Let's fix this. Start with the quickest thing and stop when it's working.
Quick fix (30 seconds) – Reboot the instance
I'll be honest: a reboot fixes maybe 10% of these cases. But it's fast and costs nothing.
- Open the EC2 console at https://console.aws.amazon.com/ec2/.
- From the left menu, click Instances.
- Check the box next to the failed instance.
- At the top, click Instance State > Reboot instance.
- Click Reboot when the popup appears.
- After about 1-2 minutes, go back to the Status Checks tab. You should see both checks turn green or at least one still failing.
Expected outcome: If the reboot worked, both checks show “passed” and the instance is back online. If you still see 1/2 checks passed, move to the moderate fix below.
Moderate fix (5 minutes) – Stop and start the instance
This is the real fix for a failed system status check. Stopping and starting moves your instance to a new physical host. That clears any hardware-level issues.
Warning: If your instance has an instance store (not EBS) as the root volume, stopping it will delete all data. Check this first: in the EC2 console, look at the instance details under “Root device type”. If it says “instance store”, skip this section.
- In the EC2 console, select your instance.
- Click Instance State > Stop instance.
- Wait for the instance state to show “stopped”. This takes 20 seconds to a few minutes.
- Once stopped, click Instance State > Start instance.
- Wait about 2-3 minutes for the instance to fully boot. Then check the Status Checks tab.
Expected outcome: If the system status check was the problem, both checks now pass. If the instance status check still fails, you have an OS-level issue. Move to the advanced fix.
Advanced fix (15+ minutes) – Fix OS-level issues
If the instance status check fails after a stop/start, something inside the OS is broken. Common causes: bad networking config, corrupted kernel, or a service that won't start. You can't fix this without getting inside the instance.
Step 1: Access the instance via EC2 Serial Console (if enabled)
The fastest way is the serial console. It's like plugging a keyboard and monitor into your server in a data center.
- In the EC2 console, select your instance.
- Click Actions > Monitor and troubleshoot > EC2 Serial Console.
- If you see “Serial console not enabled”, you need to enable it first. Go to EC2 Console > Account Attributes > Serial Console (bottom left). Toggle it on for your region.
- Back in the instance, click Connect and use the serial console to log in.
Once logged in, check these three things:
- Network config – run
ip addr show. Look for your primary interface (usually eth0). It should have a private IP. If it's missing, your network service didn't start. Trysystemctl restart networking(Ubuntu) orsystemctl restart network(Amazon Linux 2). - Disk space – run
df -h. If any partition is at 100%, the OS can't write logs or run services. Delete old logs in/var/log/or expand the EBS volume in the console. - Kernel panic – run
dmesg | tail -50. If you see kernel panics or driver errors, you need to rebuild the instance or restore from backup.
Step 2: Detach the root volume and fix it from another instance
If the serial console isn't an option (or doesn't work), you'll need to fix the OS from a separate instance. This is the “rescue” method.
- Stop the failed instance. Do not terminate it.
- Detach the root volume. Go to Elastic Block Store > Volumes. Find the volume attached to your failed instance. Select it, then click Actions > Detach volume.
- Launch a temporary instance in the same Availability Zone. Use the same OS (e.g., Amazon Linux 2, Ubuntu 22.04).
- Attach the old root volume to the temporary instance as a secondary drive (e.g.,
/dev/sdf). - SSH into the temporary instance and mount the volume:
sudo mkdir -p /mnt/rescue && sudo mount /dev/xvdf1 /mnt/rescue(the device name may differ – checklsblk). - Check and fix the OS. Look at
/mnt/rescue/var/log/for error logs. Common fixes:- Restore missing startup files:
sudo chroot /mnt/rescue /bin/bash, then rungrub2-install /dev/xvdforupdate-grub. - Remove broken packages:
sudo chroot /mnt/rescue apt purge bad-packageoryum remove bad-package.
- Restore missing startup files:
- Detach the volume from the temporary instance. Attach it back to the original instance as the root device. Make sure to use the same mount point (e.g.,
/dev/xvda). - Start the original instance and check the status checks.
Expected outcome: After fixing the OS, both checks should pass. If they still don't, your instance image is corrupted beyond repair. You'll need to restore from an AMI or snapshot.
Last resort – Restore from backup
If nothing works, and you have a recent AMI or snapshot, launch a new instance from it. Always keep backups. I've seen people skip this and lose days of work.
- Go to AMIs under Images. Find your latest backup AMI.
- Click Launch instance from AMI. Configure it the same as the old one.
- If you don't have an AMI but have a snapshot of the root volume, create a new volume from the snapshot and attach it to a new instance.
That's the full fix. Start with the reboot. If that fails, stop and start. If that fails, get into the OS. You'll be back online.
Was this solution helpful?