Live transport layer over the native Client, or one built from plain
options. The protocol is the client's protocolMode and profile (see
transportClientOptions); the layer has no other path to the network.
Request timeout — our wrapper, not transport behaviour. A request's
timeoutMs (else options.requestTimeoutMs) is held by this layer, the same
way on both channels: when it elapses the request fails with TransportErrorcode: 'ETIMEDOUT'. The native client gets the deadline plus a grace period
only to release the request later, so its own timer never decides. An
invalid timeout fails with code: 'EINVALIDTIMEOUT' (per request) or throws
RangeError (requestTimeoutMs). The transport (0.9.12) bounds both
channels by timeoutMs too, but its timeout errors carry only the generic
GenericFailure code and a message that does not say it was a timeout.
A timed-out request is not cancelled. The transport has no cancellation:
the request is abandoned and keeps running in the transport until the
server answers or the native timer releases it. Consequences: an action
request (a like, a message) may still be carried out by the server after its
timeout, so retrying after ETIMEDOUT can perform it twice; and the late
response is discarded, so session headers it carries (ig-set-*) are lost.
Live transport layer over the native
Client, or one built from plain options. The protocol is the client'sprotocolModeandprofile(seetransportClientOptions); the layer has no other path to the network.Request timeout — our wrapper, not transport behaviour. A request's
timeoutMs(elseoptions.requestTimeoutMs) is held by this layer, the same way on both channels: when it elapses the request fails withTransportErrorcode: 'ETIMEDOUT'. The native client gets the deadline plus a grace period only to release the request later, so its own timer never decides. An invalid timeout fails withcode: 'EINVALIDTIMEOUT'(per request) or throwsRangeError(requestTimeoutMs). The transport (0.9.12) bounds both channels bytimeoutMstoo, but its timeout errors carry only the genericGenericFailurecode and a message that does not say it was a timeout.A timed-out request is not cancelled. The transport has no cancellation: the request is abandoned and keeps running in the transport until the server answers or the native timer releases it. Consequences: an action request (a like, a message) may still be carried out by the server after its timeout, so retrying after
ETIMEDOUTcan perform it twice; and the late response is discarded, so session headers it carries (ig-set-*) are lost.