Unexplainable 502s on Azure Functions HTTP trigger after 30-90 seconds
I'm building an AI plugin on Azure functions which makes requests to an AI API in the background, which can take some time. Sadly, async patterns (Durable Functions etc.) are not an option for this use case due to limitations of the platform I'm building for.
For some requests (around 1 in 15) that take between 30-90 seconds, the client gets a 502 like this after ~30-40s. App insights indicate the requests resolved with a 200 response and from the logs I can see the process starts at the moment the request is made and also completes after the 502.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>502 - Web server received an invalid response while acting as a gateway or proxy server.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>502 - Web server received an invalid response while acting as a gateway or proxy server.</h2>
<h3>There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.</h3>
</fieldset></div>
</div>
</body>
</html>
I'm aware of the 230 seconds load balancer timeout, but this wouldn't trigger it, right? I don't have any timeout configured in my host.json
and am on the Consumption plan, so I would expect a timeout of 5 minutes.
The function runs on Node.js. Internally, I'm using the Hono framework.