1

I'm experiencing intermittent API request timeouts through AWS Application Load Balancer that show as "pending" status in browser developer tools. The issue is browser-specific - Safari works perfectly, but Chrome and Brave show pending requests that eventually timeout or complete after 30-60 seconds. Architecture

Frontend: React app hosted at https://hrms.mydomain.co Backend: NestJS API on EC2 (port 3000) Domain: api-hrms.mydomain.co Setup: AWS ALB → Target Group → EC2 instance SSL: AWS Certificate Manager certificate DNS: Route 53 hosted zone + GoDaddy domain

Current Configuration Application Load Balancer:

HTTP:80 listener → Redirect to HTTPS HTTPS:443 listener → Forward to target group SSL certificate attached and working HTTP/2: Disabled (tried both enabled/disabled)

Target Group:

Protocol: HTTP, Port: 3000 Health check: HTTP, path /, timeout 5s, interval 30s Deregistration delay: 30 seconds (reduced from default 300s) Target status: Healthy

Security Groups:

ALB SG: Allows inbound 80,443 from 0.0.0.0/0 EC2 SG: Allows inbound 3000 from ALB security group only

Backend (NestJS): typescriptapp.enableCors({ origin: ['https://hrms.mydomain.co', 'http://localhost:5173'], credentials: true, }); Issue Behavior

Initial requests work perfectly - all APIs respond normally After 5-10 minutes of usage, requests start showing "pending" status Browser-specific: Safari continues working fine, Chrome/Brave affected Intermittent: Some requests go through immediately, others hang Eventually completes: Pending requests complete after 30-60 seconds Target health: Always shows "Healthy" in AWS console Direct backend test: curl http://localhost:3000 responds instantly

What I've Tried

✅ Reduced ALB idle timeout ✅ Disabled HTTP/2 on ALB ✅ Reduced deregistration delay to 30s ✅ Disabled target group stickiness ✅ Modified security group rules ✅ Rebuilt entire ALB/Target Group from scratch ✅ Tested different certificates and domains ✅ Verified DNS propagation

Network Analysis Chrome DevTools shows:

Status: (pending) Type: xhr Size: 0.0 kB Time: Pending (for 30-60 seconds)

Direct backend test: bashubuntu@ip-172-31-46-104:~$ curl -I http://localhost:3000 HTTP/1.1 200 OK X-Powered-By: Express

... responds instantly

Questions

Why does this work perfectly in Safari but not Chrome/Brave? What could cause intermittent pending requests when target health is good? Are there ALB configuration options I'm missing? Could this be related to connection pooling or keep-alive settings?

Environment

AWS Region: (your region) Target Group Protocol Version: HTTP1 ALB Type: Application Load Balancer EC2: Ubuntu with NestJS app on port 3000

Any insights into browser-specific ALB behavior or additional debugging steps would be appreciated.

asked Sep 5 at 22:08

0

Know someone who can answer? Share a link to this question via email, Twitter, or Facebook.

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.