Solución de problemas
Los problemas más frecuentes y cómo resolverlos.
Los comentarios del código y los nombres de la API se mantienen en inglés para que coincidan con los SDK.
Conexión#
not_configured / NotConfigured
Unity: abre Tools ▸ Majacloud ▸ Setup y guarda; el asset debe estar en Assets/Resources/MajacloudSettings.asset. Godot: rellena Project Settings ▸ Majacloud. Web: pasa baseUrl, projectId y clientKey.
https_required (HTTP 426)
Solo localhost puede usar http://. Usa HTTPS o, solo para desarrollo, activa ALLOW_INSECURE_HTTP en config.local.php.
Todas las solicitudes fallan en el navegador o en WebGL
Sirve también el juego por HTTPS: los navegadores bloquean las llamadas http:// desde una página https://. La API ya envía las cabeceras CORS.
Encontrar una solicitud que falla
Cada error tiene un ID de solicitud. Búscalo en la página Registros de tu proyecto.
Inicio de sesión#
unauthorized en todas las llamadas
Comprueba el ID de proyecto y la clave de cliente en la página Claves de API. Si rotaste la clave de cliente, las builds anteriores dejan de funcionar.
Los jugadores pierden la sesión inesperadamente
Una sesión que no se usa durante 30 días caduca. Si dos copias del juego comparten una sesión y ambas la renuevan, la protección contra reutilización la cierra: deja que una sola instancia del SDK gestione la sesión.
La página de vinculación de cuenta no se abre
Los navegadores bloquean las pestañas que no se abren a partir de un clic. Inicia la vinculación desde el manejador de un botón.
Configuración remota#
signature_invalid / SignatureInvalid
La clave pública guardada no coincide con la del servidor, normalmente tras migrar a un servidor nuevo o perder storage/keys/. Vuelve a ejecutar Test connection (o actualiza configPublicKey) y publica una actualización.
Los cambios de configuración no aparecen
Los SDK obtienen la configuración al iniciar. Vuelve a llamar a fetch (por ejemplo, al volver al menú) para recibir los cambios durante una sesión.
Límites#
plan_limit
Se alcanzó un límite del plan. No se elimina nada; mejora tu plan o elimina en el panel los elementos que no uses.
rate_limited / quota_exceeded
Espera los segundos que indica Retry-After. Evita hacer peticiones en Update() o en bucles del juego; guarda los resultados en caché.
Godot y web#
Godot: Identifier "Majacloud" not declared
Activa el plugin en Project Settings ▸ Plugins; así se añade el autoload. Comprueba que la carpeta sea exactamente res://addons/majacloud.
Godot: TLS handshake failed
El certificado HTTPS del servidor no es de confianza (a menudo, porque es autofirmado). Usa un certificado de una autoridad pública como Let's Encrypt.
Web: "Web Crypto is unavailable"
La página se sirve por HTTP sin cifrar desde otro host. Sírvela por HTTPS (durante el desarrollo, localhost es suficiente).