Ir al contenido

Errores ​

Toda respuesta de error es JSON con el formato de abajo. La API no devuelve texto para mostrar a las personas: use el code (estable) para decidir qué hacer y tradúzcalo en su sistema.

json
{
  "code": "VALIDATION_FAILED",
  "fields": { "email": "invalid" }
}
CampoCuándo vieneSignificado
codesiempreCódigo estable del error (tabla de abajo).
fieldsen VALIDATION_FAILED y CONFLICT por campoMapa campo → código del problema (required, invalid, too_short, too_long, out_of_range, taken, weak, reused, too_soon, wrong_password, locked).
retryAfterSegen RATE_LIMITEDSegundos hasta poder reintentar (el mismo valor va en la cabecera Retry-After).
excecoes, falhasen errores específicos de asistenciaDetalles del pedido; vea el modelo ErroApi.
requestIdpuede venirIdentificador para citar al hablar con soporte.

Estado HTTP y códigos ​

EstadocodeQué hacer
400VALIDATION_FAILEDCuerpo, parámetro o consulta inválidos; fields indica dónde. Corrija y envíe de nuevo.
401UNAUTHENTICATEDToken ausente, vencido o inválido. Renueve o inicie sesión de nuevo.
403FORBIDDENLa cuenta no tiene permiso en este ámbito. En rutas con ámbito (grupo, asignatura, institución), un identificador que no existe también resulta en 403. No sirve repetir.
404NOT_FOUNDEl recurso no existe.
409CONFLICTConflicto con el estado actual: por ejemplo fields: { "sigla": "taken" } al crear una asignatura con sigla ya usada. También en el aplicar parcial sin el hashConteudo correcto.
413PAYLOAD_TOO_LARGECuerpo mayor que el límite (100 KB). Divídalo en partes.
422UNPROCESSABLEReservado para pedidos válidos que no pueden procesarse; es raro en las rutas actuales.
429RATE_LIMITEDDemasiadas llamadas. Espere retryAfterSeg y reintente.
500INTERNALFalla del servidor. Reintente más tarde, con espera creciente.

Hay además códigos de reglas de negocio (por ejemplo ALREADY_CONFIRMED, FEEDBACK_CLOSED, LAST_ADMIN, LAST_CURATOR); todos están listados en el modelo ErroApi.

Qué errores reintentar ​

Situación¿Reintentar?
429, 500, falla de redSí, con espera (respete Retry-After; sin él, empiece en 1 s y duplique hasta 60 s).
401Una vez, después de renovar el token.
400, 403, 404, 409, 413, 422No: el resultado será el mismo hasta que cambie el pedido o el estado.

Las operaciones de importación (.../importacoes/...) son idempotentes: repetir el mismo archivo no duplica nada. En cambio, el POST de creación unitaria (por ejemplo POST /turmas/{turmaId}/atividades) no es idempotente: repetir crea otra actividad. Vea los recorridos.

contato@presente.app.br