Códigos de error

Cada error tiene un código estable. Los SDK usan los mismos códigos (Unity, como enum), además de algunos para problemas que ocurren antes de que la solicitud llegue al servidor.

Los comentarios del código y los nombres de la API se mantienen en inglés para que coincidan con los SDK.

En esta página

Errores de la API#

CódigoHTTPUnityCuándo¿Reintentar?
validation400, 422ValidationEntrada no válida; details.fields indica el campo.No
unauthorized401UnauthorizedClaves incorrectas, o un token de jugador ausente, caducado o revocado.No
forbidden403ForbiddenProyecto suspendido, endpoint exclusivo de servidor o HTTPS obligatorio.No
plan_limit403PlanLimitSe alcanzó un límite del plan (jugadores, entradas, almacenamiento…). No se elimina nada.No
not_found404NotFoundEndpoint, tabla de clasificación, jugador o clave de guardado desconocidos.No
conflict409ConflictYa se hizo, p. ej., una recompensa ya reclamada en este período.No
revision_mismatch409RevisionMismatchUn guardado en la nube cambió en otro dispositivo.No
rate_limited429RateLimitedDemasiadas solicitudes por minuto o tiempo de espera de una tabla de clasificación. Espera los segundos que indica Retry-After.Sí
quota_exceeded429QuotaExceededSe agotó la cuota diaria de solicitudes de la cuenta; se restablece a las 00:00 UTC.No
server_error500ServerErrorAlgo falló en el servidor. Los SDK reintentan las solicitudes seguras.Sí

Errores exclusivos del SDK#

CódigoHTTPUnityCuándo¿Reintentar?
network—NetworkNo se pudo conectar con el servidor.Sí
timeout—TimeoutLa solicitud superó el tiempo límite.Sí
not_configured—NotConfiguredFalta la URL base, el ID de proyecto o la clave de cliente, o no son válidos.No
not_signed_in—NotSignedInUna llamada de jugador antes de iniciar sesión o después de que caducara la sesión.No
signature_invalid—SignatureInvalidLa configuración remota no superó la verificación y no se usó.No
parse_error—ParseErrorNo se pudo leer la respuesta (normalmente por un proxy o una página de error HTML).No
link_expired—LinkExpiredLa página de vinculación de cuenta caducó; vuelve a empezar.No
link_cancelled—LinkCancelledSe canceló el flujo de vinculación de cuenta.No

Gestión de errores#

Muestra message a los desarrolladores, no a los jugadores; decide qué hacer según el código. Reintenta solo los errores reintentables y registra el ID de solicitud para poder encontrar la solicitud en la página Registros.

C#
var top = await Majacloud.Leaderboards.GetTopAsync("coins", 10);
if (top.Ok)
{
    foreach (var entry in top.Value.Entries)
        Debug.Log($"#{entry.Rank} {entry.PlayerName} {entry.Score}");
}
else if (top.Error.IsRetryable)
{
    // Network, timeout, 5xx or rate limit: try again later
    Debug.Log("Retry in " + top.Error.RetryAfterSeconds + " s");
}
else
{
    Debug.LogWarning(top.Error.Code + ": " + top.Error.Message + " (" + top.Error.RequestId + ")");
}

Busca en títulos, encabezados y texto de las páginas.

↑↓ para navegar ↵ para abrir Esc para cerrar