My App is serving a page that says This application crashed

Tip

If you have a Custom Maintenance Page then you will see your maintenance page instead of This application crashed.

Cause and Resolution

This page will be served by Enclave if your App fails to respond to a web request. There are several reasons why this might happen, each with different steps for resolution:

The Service for your HTTP(S) Endpoint is scaled to zero

If there are no Containers running for the Service associated with your HTTP(S) Endpoint, this error page will be served. You will need to add at least one Container to your Service in order to serve requests.

Your Containers are closing the connection without responding

Containers that have unexpectedly restarted will drop all requests that were running, and will not respond to new requests until they have recovered. There are two reasons a Container would restart unexpectedly:

  • Your Container exceeded the Memory Limit for your Service. You can tell if your Container has been restarted after exceeding its Memory Limit by looking for the message container exceeded its memory allocation in your Logs. If your Container exceeded its Memory Limit, consider Scaling your Service.
  • Your Container exited unexpectedly for some reason other than a deploy, restart, or exceeding its Memory Limit. This is typically caused by a bug in your App or one of its dependencies. If your Container unexpectedly exits, you will see container has exited in your logs. You logs may also have additional information that can help you determine why your container unexpectedly exited.

Your App is taking longer than the Endpoint Timeout to serve requests

Clients will be served this error page if your App takes longer than the Endpoint Timeout to respond to their request. Your Logs may contain request logs that can help you identify specific requests that are exceeding the Endpoint Timeout. If it’s acceptable for some of your requests take longer than your current Endpoint Timeout to process, you can increase the Endpoint Timeout by setting the IDLE_TIMEOUT Configuration variable.

Hitting or exceeding resource limits may cause your App to respond to requests more slowly. Reviewing metrics from your Apps, either on the Enclave dashboard or from your Metric Drains, can help you identify if you are hitting any resource bottlenecks. If you find that you are hitting or exceeding any resource limits, consider Scaling your App.

You should also consider deploying Application Performance Monitoring for additional insight into why your application is responding slowly.