One telemetry delivery did not get through: the transport produced no answer,
or the server answered a non-2xx. The delivery put its batch back into the
process store first, with the same identities, so the next flush sends the
same events rather than logging new ones.
The error is channel-neutral: it names the channel whose delivery failed, so
a flush over several channels can report the first one that failed. Events of
a channel delivered before the failure stay sent — they are not returned to
the store. The three shapes share the tag TelemetryDeliveryError (one
catchTag handles them all) and are told apart by reason: an http
failure always carries the server's status, a transport failure always
carries the request layer's cause, and a session failure means the
delivery never ran because the process had not started its session.
One telemetry delivery did not get through: the transport produced no answer, or the server answered a non-2xx. The delivery put its batch back into the process store first, with the same identities, so the next flush sends the same events rather than logging new ones.
The error is channel-neutral: it names the channel whose delivery failed, so a flush over several channels can report the first one that failed. Events of a channel delivered before the failure stay sent — they are not returned to the store. The three shapes share the tag
TelemetryDeliveryError(onecatchTaghandles them all) and are told apart byreason: anhttpfailure always carries the server'sstatus, atransportfailure always carries the request layer'scause, and asessionfailure means the delivery never ran because the process had not started its session.