Transactions Timeout at 60 Seconds Intermittently from Application into NSX TKGI
search cancel

Transactions Timeout at 60 Seconds Intermittently from Application into NSX TKGI

book

Article ID: 415239

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

  • Connections lasting longer than 60 seconds fail consistently, while shorter connections complete successfully.
  • No visible configuration parameter for the 60-second timeout was found in the NSX Manager view.
  • Use the GET API to verify the application profile’s response timeout, which is 60 seconds by default. 

    GET - https://Manager FQDN or IP/api/v1/loadbalancer/application-profiles/<application-profile-id>

             "response_timeout" : 60

 

Environment

VMware NSX

VMware Tanzu Kubernetes Grid Integrated Edition

Cause

  • NSX-T Data Center REST API Documentation – Application ProfilesBy default, the HTTP Application Profile used by the NSX Load Balancer has a response timeout value of 60 seconds.
  • When creating a new HTTP Application Profile from the NSX Manager UI, there is currently no option to modify the response timeout. This value can only be verified or updated via the NSX API.
  • The issue occurs because the default HTTP response timeout for NSX-TKGI load balancers is set to 60 seconds.
  • 504 Gateway Timeout in packet captures confirms that the load balancer closed the connection after the backend server failed to respond within the timeout period.

Resolution

To increase the response timeout from 60 seconds to 120 seconds, follow the steps below.

  1. Verify the Current Response Timeout
    • Use the following GET API to view the existing application profiles and identify the one used by the virtual server.
    • GET https://<NSX-Manager-FQDN-or-IP>/api/v1/loadbalancer/application-profiles
    • You can confirm that the response_timeout is set to 60 seconds by default.

  2. Retrieve the Application Profile Details
    • Once you have identified the Application Profile ID, retrieve its configuration details:
    • GET https://<NSX-Manager-FQDN-or-IP>/api/v1/loadbalancer/application-profiles/<application-profile-id>
    • Copy the body of the JSON output.
    • In your REST client (such as Postman or curl):
    • Open the Body tab -> Select Raw -> Choose JSON format
    • Paste the copied JSON body content

  3. Modify the Response Timeout
    • In the copied JSON body, update the following values:
    • Example :
      • "response_timeout": 120,
      • "_revision": 1

  4. Update the Application Profile
    • After editing, use the PUT API to update the Application Profile with the modified timeout value:
    • PUT https://<NSX-Manager-FQDN-or-IP>/api/v1/loadbalancer/application-profiles/<application-profile-id>

  5. Associate the Virtual Server with the Updated Profile. Finally, associate your Virtual Server with the new or updated HTTP Application Profile that contains the xxx-second response timeout.

For reference: NSX-T Data Center REST API