Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Status Code 460 on Application Load Balancer

I'm seeing a concerning amount of 460 status codes in the logs of my Application Load Balancer. I don't see any patterns on these codes in regards to times, servers, or request URLs. According to this forum post, the 460 means:

The client has closed the connection with the ALB before the idle timeout has kicked in on either the front-end or the back-end connection.

I can see the request making it to the backend server and the backend processes the request without issue and very quickly. Why are these errors happening? This ALB does a significant amount of traffic with 6-8 backend servers.

Example ALB Log:

https 2017-01-30T22:46:27.451363Z app/LOAD-BALANCER/bbab458ad0b80d X.X.X.X:55999 10.5.X.X:80 0.000 -1 -1 460 - 132 0 "GET https://www.website.com:443/app/page HTTP/1.1" "-" ECDHE-RSA-AES128-SHA TLSv1 arn:aws:elasticloadbalancing:us-west-2:743462462234:targetgroup/TARGET-GROUP/e6120e5adr245b79107e "Root=1-588fc23e-77aea5adf4534af3de09659d13a08"

Example NGINX log from the backend:

X.X.X.X 1485807955.048 www.website.com /app/page - GET 200 - 0.056 24 text/html; charset=UTF-8 -

like image 635
gkrizek Avatar asked Feb 01 '17 18:02

gkrizek


People also ask

What causes ELB 4XX?

ELB 4XX errors HTTP 4XX error codes are generated when clients send faulty or malformed requests to the load balancer. Though potential causes for these errors can be guessed, not much can be done to troubleshoot.

What is idle timeout in load balancer?

The backend connection is between the load balancer and a target. The load balancer has a configured idle timeout period that applies to its connections. If no data has been sent or received by the time that the idle timeout period elapses, the load balancer closes the connection.


1 Answers

The documentation for the status code 460 is updated for Application Load Balancers.

This error occurs when the load balancer received a request from a client, but the client closed the connection with the load balancer before the idle timeout period elapses.

Check whether the client timeout period is greater than the idle timeout period for the load balancer. Ensure that your target provides a response to the client before the client timeout period elapses, or increase the client timeout period to match the load balancer idle timeout, if the client supports this.

You can read the full doc here: http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-460-issues

like image 79
Atharva Johri Avatar answered Sep 22 '22 19:09

Atharva Johri