Skip to content

Discord Troubleshooting es

stbrumm edited this page Sep 8, 2026 · 1 revision

Discord-Troubleshooting

English · Deutsch · Español · Idiomas

¿Tu estado de Discord no aparece, se ve mal o la conexión sigue fallando? Recorre los síntomas siguientes — cada diagnóstico necesita solo la vista Stream y el log del día.

Conceptos básicos de configuración (subidas al portal, client ID, archivos incluidos): consulta Discord-Setup.

El estado no aparece

  1. Revisa la línea de conexión de la vista Stream. Informa de uno de tres estados: No conectado (sin app de escritorio de Discord, actividad desactivada o client ID vacío), Conectando… o Conectado — Discord muestra el estado de Rivulet. Si se queda en No conectado, usa el botón Reconectar — reconstruye el adaptador y reintenta el handshake sin reiniciar la app.

  2. ¿Está el interruptor activado? Settings → Discord Rich Presence → Show activity on Discord debe estar habilitado y el Application client ID rellenado. Un client ID vacío mantiene el adaptador apagado por diseño.

  3. ¿Está Discord abierto? El IPC de Rich Presence solo existe mientras la app de escritorio de Discord está abierta (Discord en el navegador no basta). El adaptador reconecta automáticamente con backoff creciente en cuanto Discord aparece.

  4. Lee el log. Ubicaciones del log:

    • Windows: %LOCALAPPDATA%\Rivulet\logs\
    • Linux/macOS: el directorio local de datos de usuario bajo Rivulet/logs/

    Connected en la vista Stream pero ninguna tarjeta en Discord es caché de Discord — el cliente puede tardar unos minutos (o un reinicio) en renderizar un icono o asset nuevo; la entrega por el cable ya queda demostrada por el log.

Leer el log: las dos líneas decisivas

Cada envío de estado registra exactamente una de estas líneas:

Discord Rich Presence SET_ACTIVITY delivered activity=<estado> game=<nombre del juego>

→ Discord aceptó el payload. Si la tarjeta sigue viéndose obsoleta, reinicia Discord — la entrega está demostrada.

Discord Rich Presence IPC unavailable error=… backoff_secs=N

→ El adaptador no pudo alcanzar el socket IPC de Discord. Causas típicas: Discord no abierto, una segunda instalación de Discord (p. ej. PTB/Canary) dueña del pipe, o un problema de permisos del socket. El adaptador reintenta con backoff exponencial hasta 30 s; un Reconectar en la vista Stream fuerza un reintento inmediato.

Application ID incorrecto o ausente

  • El client ID debe tener 17–20 dígitos, solo numérico. Settings muestra un aviso inmediato si pegaste la URL de la aplicación o un ID incompleto — copia el Application ID numérico de Developer Portal → General Information.
  • El ID se valida y persiste al Apply; un valor con mala pinta nunca desactiva silenciosamente el adaptador.
  • Discord solo resuelve la presencia para una aplicación que existe y tiene Rich Presence activado. Si el ID es válido pero no se renderiza nada, abre Rich Presence → Art Assets en el portal y confirma que la ilustración se guardó bajo la clave de asset rivulet_logo.

El handshake sigue fallando

  • Errores de framing/handshake en el log (p. ej. Protocol error, HandshakeIncomplete) suelen significar que algo más escucha en el pipe IPC de Discord. Cierra otras apps que emulen Discord (launchers, overlays de chat) y pulsa Reconectar.
  • Payload rechazado (error 4000): Rivulet valida cada payload contra las reglas de Discord antes de enviarlo (un details vacío, textos de estado/juego > 128 caracteres y claves de asset implausibles se filtran) y Settings avisa al aplicar. Un 4000 en el log apunta por tanto a un problema de asset en el portal, no del payload — revisa la clave del art asset.
  • ¿Sigue sin funcionar? Ejecuta la sonda de handshake en vivo con Discord abierto: powershell -File scripts/test-discord-handshake.ps1 (desde un checkout del repositorio). Una respuesta READY demuestra el camino IPC, el framing y el client ID; la respuesta también devuelve los IDs de asset resueltos.

Límites de renderizado (no son bugs)

  • La lista de miembros del servidor muestra siempre solo el icono de la app más el nombre registrado ("Rivulet") — nunca las líneas de estado. El estado detallado aparece en la tarjeta de perfil / vista de detalle. Es la regla de renderizado de Discord; el icono viene de la subida de App Icon del portal.
  • Las etiquetas de estado siguen el idioma de la UI de Rivulet (Grabando/Recording, …) — cambia el idioma de la app para cambiar la redacción.

Seguridad: nunca pegues claves de stream, tokens de OAuth ni secretos de aplicación en páginas de la wiki, capturas, issues o logs.

Clone this wiki locally