Skip to content

Events & Alarms

bilbycast-relay generates operational events and forwards them to bilbycast-manager via WebSocket. Events provide real-time visibility into edge connections, tunnel state changes, and manager connectivity.

Events are sent as WebSocket messages with type "event":

{
"type": "event",
"timestamp": "2026-04-02T12:00:00Z",
"payload": {
"severity": "warning",
"category": "tunnel",
"message": "Tunnel bind rejected: invalid token",
"flow_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
SeverityMeaningAction
criticalService-impacting failureOperator should investigate immediately
warningDegradation or potential issueOperator should investigate when possible
infoNotable state changeNo action required, operational awareness
FieldTypeRequiredDescription
severitystringyes"info", "warning", or "critical"
categorystringyesEvent category (see tables below)
messagestringyesHuman-readable description
flow_idstringnoTunnel UUID (for tunnel-scoped events)
detailsobjectnoStructured context

Events are queued in an unbounded in-memory channel. When the relay is not connected to the manager, events accumulate and are delivered once the connection is re-established.


SeverityMessageTrigger
infoEdge connected from {addr}New QUIC connection accepted from an edge node
infoEdge disconnected from {addr}Edge QUIC connection closed
warningEdge connection failed: control stream error from {addr}Failed to accept bidirectional control stream
warningProtocol version mismatch (edge={v}, relay={v})Edge Hello message version differs from relay

Source: src/session.rs


SeverityMessageTrigger
infoTunnel active (both sides bound)Both ingress and egress edges have bound
warningTunnel bind rejected: invalid tokenHMAC-SHA256 bind token verification failed
warningTunnel down: edge disconnectedEdge QUIC connection lost, affecting bound tunnel

The flow_id field contains the tunnel UUID for all tunnel events.

Source: src/session.rs


SeverityMessageTrigger
infoConnected to managerWebSocket auth succeeded (auth_ok or register_ack)
warningManager connection lost, reconnectingWebSocket closed normally
warningManager connection lost, reconnecting: {error}WebSocket errored
criticalManager authentication failed: {reason}Auth rejected by manager

Source: src/manager/client.rs


SeverityMessageTrigger
infoSecret rotated successfullyrotate_secret command completed
warningCredential persistence failed: {error}Failed to write credentials to config file after rotation

Source: src/manager/client.rs


In addition to events sent by the relay, the manager itself generates these events:

SeverityCategoryMessageTrigger
infoconnectionNode connected to managerRelay successfully authenticates
warningcompatibilityNode WS protocol version differsProtocol version mismatch during auth
criticalconnectionNode disconnected from managerRelay WebSocket closes

These are generated server-side in bilbycast-manager/crates/manager-server/src/ws/node_hub.rs.


CategoryCountDescription
edge4Edge QUIC connection lifecycle
tunnel3Tunnel state changes and authentication
manager6Manager connection and credential management
Total13
SeverityCountDescription
critical1Manager authentication failure
warning6Disconnects, bind rejections, protocol mismatches, persistence failures
info6Connections, tunnel activation, secret rotation