Incidentes
Um Incident é aberto quando uma ExecutableTask esgota suas tentativas de retry, ou quando um erro de
negócio não tem BOUNDARY_ERROR_HANDLER correspondente (ver
Retry e Resiliência e
Tratando Erros de Negócio).
| Operação | Endpoint |
|---|---|
| Buscar um incidente por id | GET /incidents/{id} |
| Retentar um incidente aberto | PUT /incidents/{id}/retry |
| Incidentes de uma instância | GET /process-instances/{id}/incidents (ver Instâncias de Processo) |
GET /incidents/{id} requer QueryRepository; PUT /incidents/{id}/retry requer KikwiflowEngine.
Buscar por id
GET /incidents/{id}
200 OK com o Incident completo, ou 404 (NOT_FOUND).
| Campo | Papel |
|---|---|
id | Identificador do incidente. |
type | Classe da exceção que originou o incidente. |
message / stackTrace | Detalhe do erro capturado. |
processDefinitionId / processInstanceId | Onde o incidente ocorreu. |
taskDefinitionId | id do nó na definição — cruza com o diagrama. |
executionId | id da ExecutableTask que falhou — é o que retry reativa. |
status | OPEN ou RESOLVED. |
createdAt | Quando o incidente foi aberto. |
Retentar
PUT /incidents/{id}/retry
Sem corpo. Reativa a ExecutableTask associada (status → PENDING, retries restaurado ao máximo — o
declarado na retryPolicy do próprio nó, ou 3 se o nó não declarar uma política própria; esse "3" é o
default fixo de KikwiflowConfig.defaultMaxRetries, hoje sem propriedade kikwiflow.* correspondente para
ajustá-lo globalmente) e marca o incidente como RESOLVED, de forma atômica. Resposta 204 No Content.
| Situação | Resultado |
|---|---|
id inexistente | 404 (NOT_FOUND) |
Incidente existe mas não está OPEN (já RESOLVED) | 409 (CONFLICT) — só incidentes OPEN podem ser retentados |
ExecutableTask associada não existe mais (ex.: instância apagada via PUT /process-instances/{id}) | 404 (NOT_FOUND) |