La aplicación móvil de Android de Discourse Hub no puede encontrar el servidor privado

Mi servidor privado de Discourse funciona y es accesible a través del navegador y la aplicación móvil para iOS.

Sin embargo, en Android, Discourse Hub no puede encontrar el servidor. (Puede encontrar otros servidores como meta.discourse.org).

¿Alguna idea de por qué falla esto? ¿Podría ser que la aplicación móvil de Android utilice un agente rastreador diferente para acceder al servidor que la versión de iOS? ¿O alguna otra razón?

Sí, la aplicación móvil realiza algunas solicitudes específicas para determinar que la URL es un servidor Discourse.

Hay dos solicitudes:

  • una solicitud HEAD a serverdomain.com/user-api-key/new
  • una solicitud GET a serverdomain.com/site/basic-info.json

Si alguna de ellas no devuelve datos, la aplicación asumirá que la URL no es un sitio Discourse.

1 me gusta

El más útil, @pmusaraj. ¡Gracias! Para dar seguimiento:

1- La solicitud GET obtiene una respuesta, pero la instrucción HEAD arroja un error de ‘valor no válido’. (Esto también es cierto para meta.discourse.org, sin embargo, ambas aplicaciones móviles pueden conectarse a esta instancia). ¿Cómo modifico el servidor para producir una respuesta adecuada a la solicitud HEAD?

2- ¿Por qué la versión de iOS supera estas pruebas con éxito y se conecta a mi servidor?

1 me gusta

Ah, esto es una indicación de que el lado de Discourse probablemente esté bien, la verificación del sitio es la misma en iOS y Android.

Recuerdo que algunas versiones/dispositivos de Android son más estrictos con los certificados SSL, hubo algo similar en el pasado, pero hace mucho tiempo: Community not found in App Android Version 7 - #37 by h.vdheurik

1 me gusta

Por si sirve de algo, un amigo probó esto usando un Android estándar con el mismo resultado. Mi dispositivo es un Pixel 8a con la última versión de GrapheneOS.

¿Podría ser una nueva incompatibilidad de cifrado similar a la que mencionaste de 2017?

No lo sé. Si quieres enviarme la URL del sitio de forma privada, puedo depurar un poco más.

Revisamos los rastreadores. Mi servidor bloqueó muchos rastreadores y parece que uno de ellos estaba impidiendo que la aplicación móvil se conectara. Después de restablecer la configuración de fábrica, la aplicación pudo conectarse.

Luego agregué okhttp como el único rastreador permitido y la aplicación móvil aún pudo conectarse. Crisis evitada. :slight_smile:

Gracias a @pmusaraj por revisar el código de la aplicación de Android y trabajar en esta solución.

2 Me gusta