agp_service/
errors.rs

1// Copyright AGNTCY Contributors (https://github.com/agntcy)
2// SPDX-License-Identifier: Apache-2.0
3
4use thiserror::Error;
5
6use crate::session::SessionMessage;
7
8#[derive(Error, Debug)]
9pub enum ServiceError {
10    #[error("configuration error {0}")]
11    ConfigError(String),
12    #[error("agent already registered")]
13    AgentAlreadyRegistered,
14    #[error("agent not found: {0}")]
15    AgentNotFound(String),
16    #[error("connection error: {0}")]
17    ConnectionError(String),
18    #[error("disconnect error: {0}")]
19    DisconnectError(String),
20    #[error("error sending subscription: {0}")]
21    SubscriptionError(String),
22    #[error("error sending unsubscription: {0}")]
23    UnsubscriptionError(String),
24    #[error("error on set route: {0}")]
25    SetRouteError(String),
26    #[error("error on remove route: {0}")]
27    RemoveRouteError(String),
28    #[error("error publishing message: {0}")]
29    PublishError(String),
30    #[error("error receiving message: {0}")]
31    ReceiveError(String),
32    #[error("session not found: {0}")]
33    SessionNotFound(String),
34    #[error("error in session: {0}")]
35    SessionError(String),
36    #[error("client already connected: {0}")]
37    ClientAlreadyConnected(String),
38    #[error("server not found: {0}")]
39    ServerNotFound(String),
40    #[error("error sendinfg message: {0}")]
41    MessageSendingError(String),
42    #[error("unknown error")]
43    Unknown,
44}
45
46#[derive(Error, Debug, PartialEq)]
47pub enum SessionError {
48    #[error("error receiving message from gateway: {0}")]
49    GatewayReception(String),
50    #[error("error sending message to gateway: {0}")]
51    GatewayTransmission(String),
52    #[error("error in message forwarding: {0}")]
53    Forward(String),
54    #[error("error receiving message from app: {0}")]
55    AppReception(String),
56    #[error("error sending message to app: {0}")]
57    AppTransmission(String),
58    #[error("error processing message: {0}")]
59    Processing(String),
60    #[error("session id already used: {0}")]
61    SessionIdAlreadyUsed(String),
62    #[error("invalid session id: {0}")]
63    InvalidSessionId(String),
64    #[error("missing AGP header: {0}")]
65    MissingAgpHeader(String),
66    #[error("missing session header")]
67    MissingSessionHeader,
68    #[error("session unknown: {0}")]
69    SessionUnknown(String),
70    #[error("session not found: {0}")]
71    SessionNotFound(String),
72    #[error("default for session not supported: {0}")]
73    SessionDefaultNotSupported(String),
74    #[error("missing session id: {0}")]
75    MissingSessionId(String),
76    #[error("error during message validation: {0}")]
77    ValidationError(String),
78    #[error("message={message_id} session={session_id}: timeout")]
79    Timeout {
80        session_id: u32,
81        message_id: u32,
82        message: Box<SessionMessage>,
83    },
84    #[error("configuration error: {0}")]
85    ConfigurationError(String),
86    #[error("message lost: {0}")]
87    MessageLost(String),
88}