diff --git a/.changeset/rpc-connection-closed-error-code.md b/.changeset/rpc-connection-closed-error-code.md new file mode 100644 index 000000000..352b66adb --- /dev/null +++ b/.changeset/rpc-connection-closed-error-code.md @@ -0,0 +1,5 @@ +--- +"@livekit/protocol": patch +--- + +Add the `DataChannelRpcConnectionClosed` (1506, "Connection closed") data channel RPC error code, used by the client SDKs when the caller's own room disconnects while a call is in flight diff --git a/utils/data_channel_rpc.go b/utils/data_channel_rpc.go index 104a59690..a06b13367 100644 --- a/utils/data_channel_rpc.go +++ b/utils/data_channel_rpc.go @@ -16,6 +16,7 @@ const ( DataChannelRpcRecipientDisconnected DataChannelRpcResponsePayloadTooLarge DataChannelRpcSendFailed + DataChannelRpcConnectionClosed ) const ( @@ -41,6 +42,7 @@ var dataChannelRpcErrorMessages = map[DataChannelRpcErrorCode]string{ DataChannelRpcRecipientDisconnected: "Recipient disconnected", DataChannelRpcResponsePayloadTooLarge: "Response payload too large", DataChannelRpcSendFailed: "Failed to send", + DataChannelRpcConnectionClosed: "Connection closed", DataChannelRpcUnsupportedMethod: "Method not supported at destination", DataChannelRpcRecipientNotFound: "Recipient not found", @@ -76,6 +78,8 @@ func (e *DataChannelRpcError) PsrpcError() psrpc.Error { return psrpc.NewError(psrpc.MalformedResponse, e) case DataChannelRpcSendFailed: return psrpc.NewError(psrpc.Internal, e) + case DataChannelRpcConnectionClosed: + return psrpc.NewError(psrpc.Unavailable, e) case DataChannelRpcUnsupportedMethod: return psrpc.NewError(psrpc.InvalidArgument, e) case DataChannelRpcRecipientNotFound: