Timeouts¶
Timeouts during execution¶
When executing long-running workflows or when loading or sending huge amounts of data, timeouts can occur, leading to execution errors. Timeouts can occur at different steps of the overall process:
- If running the workflow via the test execution button, the frontend container nginx reverse proxy can time out. To adjust these timeouts the nginx.conf file must be modified. One way to do this is mounting a modified nginx.conf to the appropriate location into the service-container.
- The backend / runtime uvicorn Server can time out. These timeouts can be set via environment variables. For the worker timeout in multi-worker process setup (i.e.
WEB_CONCURRENCY>1) hetida designer backend/runtime introduceUVICORN_TIMEOUT_WORKER_HEALTHCHECKenvironment variable, defaulting to 30 (seconds). It is often necessary to increase this to allow handling compute intensive data science runtime executions. - For the deprecated gunicorn mode these timeouts can be set via
TIMEOUTandGRACEFUL_TIMEOUTenvironment variables on the backend / runtime service. See gunicorn documentation. - Requests to send or receive data from the runtime to the adapter or requests to execute workflows/components from the backend to the runtime can cause timeouts. These timeouts can be set via the
EXTERNAL_REQUEST_TIMEOUTenvirionment variables on the backend / runtime service. - If running in kubernetes using an ingress, the ingress may have its own timeout settings.