EdgeStream
Server-Level Error Handling
Handle connection failures, transport errors, and pipeline exceptions at the server level using EdgeStream's lifecycle event system.
Lifecycle Events for Error Handling
edgeStream.on('stream:error', (event) => {
console.error('EdgeStream stream error:', event.data?.error);
errorMonitoring.captureException(event.data?.error);
});
edgeStream.on('server:error', (event) => {
console.error(`Server ${event.serverId} error:`, event.data?.error);
// Show connection error indicator in UI
connectionStore.setError(event.serverId, event.data?.error as string);
});
edgeStream.on('server:disconnected', (event) => {
console.warn(`Server ${event.serverId} disconnected`);
// Show offline indicator — SignalR will auto-reconnect
connectionStore.setStatus(event.serverId, 'disconnected');
});
edgeStream.on('server:connected', (event) => {
console.log(`Server ${event.serverId} reconnected`);
connectionStore.setStatus(event.serverId, 'connected');
});
Start Failure Handling
try {
await edgeStream.start();
} catch (error) {
console.error('EdgeStream failed to start:', error);
// EdgeStream status is now 'error'
// Options:
// 1. Show offline mode UI
uiStore.setOfflineMode(true);
// 2. Retry after delay
setTimeout(() => edgeStream.start().catch(handleStartError), 5000);
// 3. Redirect to reconnection page
}
Transport Error Monitoring
const server = edgeStream.server('bas')!;
server.transport.onError((error) => {
console.error('[BAS Transport] Error:', error.message);
metrics.increment('edge_stream.transport_errors', { server: 'bas' });
});
server.transport.onStatusChange((status) => {
console.log('[BAS Transport] Status:', status);
uiStore.updateConnectionStatus('bas', status);
});
Reconnection Behavior
With SignalR transport and maxAttempts: 0, reconnection is automatic and indefinite. The server emits server:disconnected and server:connected events during the reconnection cycle:
| Event | When | SignalR Auto-Reconnect |
|---|---|---|
server:disconnected | Transport disconnects | Reconnect begins automatically |
server:error | Transport error during connect/send | Retry with backoff |
server:connected | Transport (re)connects | Normal operation resumes |
Next: Transports
For the full transport reference — SignalR, WebSocket, SSE, HTTP polling — see Guide 6: Transports.