Skip to main content

RequestTimeout

Andromeda answers 408 with the problem type https://uri.etsi.org/ngsi-ld/errors/RequestTimeout. The request body was still arriving when request_limits.timeout ran out. Over HTTP/1.1 the answer carries Connection: close, and the broker closes the connection. This type is Andromeda's own. The HTTP binding doesn't list 408, which RFC 9110 gives to a client that doesn't send its whole request in time. See Andromeda's own types.

When this comes back​

The client started sending a request body and hadn't finished when request_limits.timeout ran out. A stalled or very slow upload causes it, and so does a client that announces a longer body than it sends. The broker leaves the rest of the body unread. Over HTTP/2 and HTTP/3 only that stream ends, and the connection stays open.

The request head has a deadline of its own. On HTTP/1.1, a head that has started to arrive but is still incomplete when server.request_head_timeout runs out (30 seconds by default) also gets 408, with Connection: close, and the broker closes the connection. That answer has no body and no problem type, because no request has been read yet that a problem document could answer. HTTP versions covers when that deadline starts counting and what happens on a connection that sends nothing at all.

A request that runs out of time while the broker itself is still working gets 500 InternalError instead.

Check that the client sends the whole body, or raise request_limits.timeout when large bodies arrive over slow links.