SendFailure

sealed interface SendFailure(source)

Reason a packet could not be delivered.

Represents expected radio failures (no route, timeout) and transport issues. Not thrown as an exception — observed via MessageHandle.state.

Since

0.1.0

Inheritors

Types

Link copied to clipboard
data object AckTimeout : SendFailure

Per-send ACK timeout: the device did not produce a Routing ACK for a unicast want_ack packet within the configured RadioClient.Builder.sendTimeout window.

Link copied to clipboard
data object Cancelled : SendFailure

MessageHandle.cancel was called before the packet left the host queue.

Link copied to clipboard

Transport disconnected before the packet could be sent.

Link copied to clipboard

Device's duty-cycle limit prevented transmission (from Routing.Error.DUTY_CYCLE_LIMIT).

Link copied to clipboard

The handshake failed (timeout or terminal error) before the packet could be dispatched.

Link copied to clipboard
data object IdCollision : SendFailure

Caller submitted a packet whose id matches an in-flight send that has not yet reached a terminal state. The new send is rejected; the existing in-flight handle is preserved.

Link copied to clipboard

Device exhausted its retransmit budget (from Routing.Error.MAX_RETRANSMIT).

Link copied to clipboard
data object NoRoute : SendFailure

No route to the destination (from Routing.Error.NO_ROUTE).

Link copied to clipboard
data class Other(val routingError: Routing.Error) : SendFailure

Some other device-reported routing error.

Link copied to clipboard
data object Timeout : SendFailure

Admin operation timed out waiting for a response.

Link copied to clipboard
data class Unknown(val message: String) : SendFailure

Unknown failure (should not occur in normal operation).

Functions

Link copied to clipboard

Plain-language message for any SendFailure. Never empty.