Categories:
Errors handled by Aura bridge
Description of how Aura bridge manages errors coming from different sources
Introduction
aura-bridge has to manage errors for different sources such as aura-groot, Kernel, WhatsApp, etc.
Management of Kernel errors
If a request to Kernel fails, aura-bridge receives a direct response error.
There are two error types:
- Recoverable: aura-bridge enqueues the message and tries to resend the message later.
- Unrecoverable: aura-bridge removes the message.
In both cases, aura-bridge cannot inform about the error to the user and must send an event to aura-groot, in order to record the KPIs.
@startuml
title Kernel error
Actor User
participant AuraBridge
participant AuraGroot
participant Kernel_Whatsapp
User -> AuraBridge: user message
AuraBridge -> AuraGroot: send user message
AuraGroot -> AuraBridge: replay with activity
AuraBridge -> Kernel_Whatsapp: send message from activity
Kernel_Whatsapp -> AuraBridge: response error
AuraBridge -> AuraGroot: send event for kpis
alt error is unrecoverable
AuraBridge -> AuraBridge: remove message from activity
end
alt error is recoverable
loop For numRetries
AuraBridge -> Kernel_Whatsapp: send message from activity
end
end
@enduml
Management of WhatsApp errors
If WhatsApp reports an error to Kernel, then Kernel sends the bridge a message with the errors.
There are two error types:
- Recoverable: aura-bridge enqueues the message and tries to resend the message later.
- Unrecoverable: aura-bridge removes the message and informs about it to the user.
In both cases, aura-bridge sends an event to aura-groot, in order to record the KPIs.
@startuml
title Error Whatsapp
Actor User
participant AuraBridge
participant AuraGroot
participant Kernel
participant Whatsapp
User -> AuraBridge: user message
AuraBridge -> AuraGroot: send user message
AuraGroot -> AuraBridge: replay with activity
AuraBridge -> Kernel : send message from activity
Kernel -> Whatsapp: send message from activity
Whatsapp -> Kernel: response error
Kernel -> AuraBridge: response error
AuraBridge -> AuraGroot: send event for kpis
alt error is unrecoverable
AuraBridge -> User: send error message for user
AuraBridge -> AuraBridge: remove message from activity
end
alt error is recoverable
loop For numRetries
AuraBridge -> Kernel: send message from activity
end
end
@enduml
Management of rendering errors
It occurs when the transformation from aura-groot activity to WhatsApp message fails.
aura-bridge sends an event to aura-groot, in order to record the KPIs and informs about error to the user.
@startuml
title Rendering error
Actor User
participant AuraBridge
participant AuraGroot
participant Kernel_Whatsapp
User -> AuraBridge: user message
AuraBridge -> AuraGroot: send user message
AuraGroot -> AuraBridge: replay with activity
alt rendering fails
AuraBridge -> AuraBridge: render bot activity to whatsapp message
end
AuraBridge -> AuraGroot: send event for kpis
AuraBridge -> User: send error message for user
@enduml