{"id":14875,"date":"2026-01-14T05:35:13","date_gmt":"2026-01-14T11:35:13","guid":{"rendered":"https:\/\/www.supportpro.com\/blog\/?p=14875"},"modified":"2026-03-27T04:01:28","modified_gmt":"2026-03-27T10:01:28","slug":"how-to-find-problems-with-aws-load-balancer-timeouts-5xx-errors-and-health-checks","status":"publish","type":"post","link":"https:\/\/www.supportpro.com\/blog\/how-to-find-problems-with-aws-load-balancer-timeouts-5xx-errors-and-health-checks\/","title":{"rendered":"How to Troubleshoot AWS Load Balancer Issues: Timeouts, 5XX Errors, and Health Checks"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">It&#8217;s easy to forget about the load balancer when everything is going well on AWS. But you know how important it is as soon as you start to see wrong responses, weird typos, or health checks that don&#8217;t work. A misconfigured health check or a backend server that couldn&#8217;t keep up has stopped projects in their tracks. In this post, I\u2019ll walk through <strong>AWS Load Balancer troubleshooting<\/strong>, covering common issues with AWS Elastic Load Balancers (ELB, ALB, and NLB), what typically causes them, and proven ways to fix them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">1. Requests that take too long<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In most cases, a timeout means the load balancer is taking too long to pass the request to your backend service. During AWS Load Balancer troubleshooting, this is often mistaken for a load balancer issue, but the root cause is usually one of the following:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Slow backend responses:<\/strong> If your application or database is slow, the load balancer can\u2019t do much to help. In many cases, these issues are resolved by optimizing queries, improving application performance, or scaling out by adding more instances.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ELBs have a default idle timeout of 60 seconds. You need to change this or the client\/server settings if your program needs longer connections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Database bottlenecks cause a lot of problems. One of the teams I worked with had a query that locked up the database, which caused the load balancer to cease working.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Traffic spikes: When a lot of users use a server, it can grow too busy even if it&#8217;s running well. In this case, Auto Scaling is helpful.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">5XX Errors (500, 502, 503, 504)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">These error codes suggest that the server had a problem. Each one has a narrative that&#8217;s a little different:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>500 &#8211; Internal Server Error: This usually means that the software crashed or did something wrong. Start with the logs.<\/li>\n\n\n\n<li>502: Bad Gateway: The load balancer couldn&#8217;t connect to the backend at all. This happens a lot when the security group&#8217;s rules are improper or the service isn&#8217;t listening on the right port.<\/li>\n\n\n\n<li>503: Service Not Available: There aren&#8217;t any good examples. Either all of them failed health checks, or there aren&#8217;t enough working servers.<\/li>\n\n\n\n<li>504 &#8211; Gateway Timeout: The server took too long to respond. When APIs or queries take a long time to respond, this happens a lot.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In my experience, 502s and 503s are the worst because fixing them usually means going over security rules, target groups, and instance health again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">3. Failures of Health Checks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s easy to run health checks. The load balancer sends a ping to a port or URL, and if the instance doesn&#8217;t answer correctly, it is designated as unhealthy. But I&#8217;ve seen a lot of teams mess up due of little things like this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The health check points to \/, however the app only works on \/status.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The app works, but the firewall won&#8217;t let traffic from the load balancer through.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A service is &#8220;up,&#8221; but it&#8217;s not listening on the appropriate port.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If health checks are failing, you should always start by manually checking the endpoint (curl -v http:\/\/instance:port\/status) to determine what the app is truly sending back.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How I Usually Fix Things<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is usually how I do it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Look at CloudWatch Metrics &#8211; The first sign is the delay, the amount of requests, and the 5XX errors. If latency is going up a lot, it&#8217;s probably because of the backend. Health checks are what lower the number of healthy hosts.<\/li>\n\n\n\n<li>Check the Access Logs. To find out what&#8217;s really wrong, look at the logs for the load balancer. I found a 504 problem that was appearing by looking at the logs and noting that one API request was taking 90 seconds.<\/li>\n\n\n\n<li>Find out more about NACLs and Security Groups.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Make that your instances can talk to the load balancer and get a response. It&#8217;s easy to notice restrictions that weren&#8217;t set up correctly and only block one AZ.<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Look at the back end Right away<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">You can check if you can reach the service with curl or telnet. If it doesn&#8217;t work, the <a href=\"https:\/\/www.supportpro.com\/blog\/resolving-aws-elastic-load-balancer-elb-errors\/\" title=\"\">ELB <\/a>isn&#8217;t to blame; your software or host is.<\/p>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Take a look at Resources and Auto Scaling<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If your servers are consistently overloaded, you can either add more instances (scale out) or increase instance capacity (scale up). However, during AWS Load Balancer troubleshooting, it\u2019s important not to overlook the database, as it\u2019s often the real bottleneck behind performance issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In short, AWS Load Balancer troubleshooting can be challenging because the symptoms often look the same\u2014timeouts, 502 errors, or intermittent failures\u2014while the underlying causes vary widely. To resolve issues effectively, you need to methodically review metrics, logs, network connectivity, and configuration settings one step at a time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What does it mean when things start to go wrong? With the right AWS Load Balancer troubleshooting approach, you can quickly understand what\u2019s happening by using AWS tools such as CloudWatch, access logs, and health checks. By applying proper scaling strategies and regularly validating your configurations, you can resolve most issues before users ever notice them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No matter if it&#8217;s a timeout, a 5XX error, or a failed health check, the answer is nearly always the same: keep an eye on your app while it&#8217;s busy and make sure your backend is healthy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Need a quick fix? The <a href=\"https:\/\/www.supportpro.com\/softwareinstallation.php\" title=\"\">SupportPRO<\/a> team is always available to deliver fast, expert solutions and keep your AWS infrastructure running smoothly.<\/p>\n\n\n\n<div class=\"wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile is-vertically-aligned-center has-white-background-color has-background\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-large-font-size wp-block-paragraph\">Facing issues? <\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Our technical support<br>engineers can solve it. <\/p>\n\n\n\n<!--HubSpot Call-to-Action Code --><span class=\"hs-cta-wrapper\" id=\"hs-cta-wrapper-3350a795-db50-482f-9911-301930d1b1be\"><span class=\"hs-cta-node hs-cta-3350a795-db50-482f-9911-301930d1b1be\" id=\"hs-cta-3350a795-db50-482f-9911-301930d1b1be\"><!--[if lte IE 8]><div id=\"hs-cta-ie-element\"><\/div><![endif]--><a href=\"https:\/\/cta-redirect.hubspot.com\/cta\/redirect\/2725694\/3350a795-db50-482f-9911-301930d1b1be\" ><img decoding=\"async\" class=\"hs-cta-img\" id=\"hs-cta-img-3350a795-db50-482f-9911-301930d1b1be\" style=\"border-width:0px;\" src=\"https:\/\/no-cache.hubspot.com\/cta\/default\/2725694\/3350a795-db50-482f-9911-301930d1b1be.png\"  alt=\"Contact Us today!\"\/><\/a><\/span><script charset=\"utf-8\" src=\"https:\/\/js.hscta.net\/cta\/current.js\"><\/script><script type=\"text\/javascript\"> hbspt.cta.load(2725694, '3350a795-db50-482f-9911-301930d1b1be', {\"useNewLoader\":\"true\",\"region\":\"na1\"}); <\/script><\/span><!-- end HubSpot Call-to-Action Code -->\n<\/div><figure class=\"wp-block-media-text__media\"><img fetchpriority=\"high\" decoding=\"async\" width=\"904\" height=\"931\" src=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup.png\" alt=\"guy server checkup\" class=\"wp-image-12943 size-full\" srcset=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup.png 904w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup-291x300.png 291w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup-768x791.png 768w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup-585x602.png 585w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s easy to forget about the load balancer when everything is going well on AWS. But you know how important it is as soon as you start to see wrong&hellip;<\/p>\n","protected":false},"author":4,"featured_media":15308,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[69,144],"tags":[],"class_list":["post-14875","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-aws-support"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts\/14875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/comments?post=14875"}],"version-history":[{"count":6,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts\/14875\/revisions"}],"predecessor-version":[{"id":16778,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts\/14875\/revisions\/16778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/media\/15308"}],"wp:attachment":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/media?parent=14875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/categories?post=14875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/tags?post=14875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}