Solución de problemas de X Bot: reportes, filtros, calendarios, facturación
Un índice consolidado de cada ruta de "algo se ve mal, ahora qué". Las matrices en instalación / menú-setup / soporte también viven aquí para que puedas buscar en una sola página en lugar de tres.
Empieza aquí: abre
/setup→ ℹ️ Acerca de en tu grupo. Las cuatro líneas de esa pantalla (ID de chat, plan, calendario, nombre de proyecto) son lo que soporte necesita para hacer triage. Cópialas antes de hacer cualquier otra cosa.
Flujo de autodiagnóstico
Recorre estas preguntas en orden. La mayoría de los problemas se resuelven en una de las dos primeras verificaciones.
1. Does the bot reply to /setup at all?
├─ No → bot was kicked or demoted from admin → re-promote and retry
└─ Yes → continue.
2. Does /setup → 📊 Reports → ⚡ Generate report now produce a post
within 3 minutes?
├─ No DM, no post → check matrix in §"Reports not arriving"
├─ DM "no posts found" → see §"Filter / no posts"
├─ DM "credit exhausted" → see §"Billing & credits"
├─ Post landed but renders wrong → see §"Render quality"
└─ Post landed correctly → you're fine.
3. Are scheduled reports arriving on time?
├─ No → see §"Schedule not firing"
└─ Yes → all good.
4. X Posts Auto-relay issues?
└─ See §"X Posts Auto-relay"Si ninguna de las matrices abajo te lleva a una solución, desplázate a Escalación.
Reportes que no llegan
| Síntoma | Causa probable | Solución |
|---|---|---|
| El bot estaba activo antes, de repente en silencio | El bot fue degradado de administrador / expulsado silenciosamente | Telegram → administradores del grupo → vuelve a promoverlo. Si sigue en silencio, contacta a soporte — puede haberse activado la autodesactivación por chat desaparecido. |
| Generar-ahora manual no produce nada | El bot es administrador pero tiene cero créditos | /setup → 💳 Comprar créditos. Si FREE "100/100 usados" — espera al reinicio mensual (día 1 del mes UTC). Si PRO·créditos con REMAINING=0 — el chat ya se degradó automáticamente a FREE; /setup → 💳 → 💰 Comprar para recargar. |
| Generar-ahora manual: DM de administrador "no se encontraron publicaciones" | Filtro demasiado estrecho O no hay publicaciones en la ventana | /setup → 🎯 Filtros. Revisa la consulta literal de la API de X en busca de errores tipográficos. Intenta ampliar o eliminar el período. |
| La imagen se renderiza pero el texto está vacío | El comentario de IA agotó el tiempo | Vuelve a ejecutar; es transitorio. Persistente = contacta a soporte. |
| La imagen falla al renderizarse por completo | Fallo transitorio de renderizado | Vuelve a ejecutar. Si falla repetidamente para un chat, contacta a soporte con el ID de chat. |
| Error "Unauthorized" / "Forbidden" en el DM de administrador | Problema con el token de la API de X (del lado del operador) | Contacta a soporte; nada que el usuario pueda arreglar. |
Filtro / sin publicaciones
| Síntoma | Causa probable | Solución |
|---|---|---|
| El reporte muestra "0 publicaciones" en todas partes | El filtro no coincide con nada en el período configurado | Paso 1: /setup → 🎯 Filtros — confirma la consulta. Paso 2: /setup → 📊 Reportes → 🗑 Borrar período (la ventana móvil de 24h es más permisiva). Paso 3: amplía los filtros (añade un cashtag de respaldo, elimina grupos de palabras clave estrictos). |
| El leaderboard muestra usuarios que no añadí al filtro | Los filtros son aditivos — cualquiera que twittee un cashtag/palabra clave rastreada cuenta | Para requerir tanto una cuenta como un cashtag, usa /set_x_filtering name from:@x cashtags:$Y (filtro nombrado, semántica AND-de-categorías). |
| El mismo usuario dominó el leaderboard | El bot puntuó legítimamente cada publicación | /setup → 🎯 Filtros → 🙈 Ignorar → ➕ Añadir @spammer — se eliminan de los resultados después de la obtención. |
| Cashtag con caracteres raros no coincide | La API de X normaliza mayúsculas/minúsculas; los espacios al inicio/final importan en la entrada del filtro | Vuelve a añadirlo vía /setup → 🎯 Filtros → 💵 Cashtags → ➕ Añadir → sin $ necesario, sin espacios. |
Cashtag con prefijo numérico (p. ej. $1INCH) no se rastrea | El comportamiento de búsqueda de la API de X con números al inicio puede ser inconsistente | Úsalo como palabra clave en lugar de cashtag: "$1INCH" en 🔍 Palabras clave con comillas. |
| La selección de "Mejor Tweet" parece incorrecta | La deduplicación de IA recientemente eligió un tweet similar | Espera un ciclo. Si la sensación errónea persiste, repórtalo; el prompt es ajustable. |
El calendario no se dispara
| Síntoma | Causa probable | Solución |
|---|---|---|
Calendario "rechazado" con FREQUENCY_ERROR | El cron intenta dispararse más seguido que cada 12h | La verificación de espaciado impone ≥ 12h de separación. El mensaje de error nombra el par de horas conflictivo. Elige una separación más amplia. |
| Calendario configurado, pero el reporte no llegó a tiempo | El cron programado se dispara dentro de ~1–2 min del tick | Espera 5 min después de la hora configurada antes de asumir que se perdió. Ocurren retrasos ascendentes raros pero se resuelven solos. |
| El cron de disparo múltiple solo se dispara una vez | Lista de horas desordenada o duplicada | cron(0 14,22 ? * * *) — horas ascendentes. cron(0 22,14 ? * * *) se rechaza. |
| El calendario en staging se dispara cada 5 min, en producción no | Espacio de nombres RULE_NAME diferente | Confirma que estás revisando el entorno correcto. /setup → ℹ️ Acerca de muestra el entorno. |
| La zona horaria parece incorrecta | El calendario está en UTC por diseño | Convierte tu hora local a UTC. La entrada de configuración de calendario también acepta zonas horarias con nombre en algunos casos límite — revisa el docstring de la entrada. |
| La retransmisión automática de X se dispara pero los reportes no | Calendarios cron diferentes | La retransmisión automática de X usa un sondeo de 5 min por retransmisión; los reportes usan el cron del calendario principal del chat (típicamente diario). Son independientes. |
Calidad de renderizado
| Síntoma | Causa probable | Solución |
|---|---|---|
| El título / color personalizado se revirtió durante la noche | La caché se invalidó, la próxima obtención muestra el nuevo valor | Espera un ciclo de reporte (~1 día). La caché de renderizado se reconstruye en la próxima obtención. |
| Logo borroso / recortado | Imagen de origen demasiado pequeña o no cuadrada | Vuelve a subir en ≥ 512×512 PNG, aspecto cuadrado. /setup → 🎨 Personalización → 🖼 Logo. |
| El nombre de usuario se desborda en la imagen del leaderboard | Nombre de visualización largo | El bot trunca con puntos suspensivos; no requiere solución a menos que sea persistente. |
El texto de mejor-tweet muestra <a href> HTML sin procesar | Discrepancia en el modo de análisis de Telegram | Error — repórtalo con la URL del tweet. |
| Imagen de reporte diferente vs vista previa de Telegram | Telegram almacena en caché los primeros bytes de imagen por URL; las URLs prefirmadas incluyen una marca de tiempo así que cada obtención es única | No debería pasar; si pasa, rota vía /recreate. |
Retransmisión automática de publicaciones de X
| Síntoma | Causa probable | Solución |
|---|---|---|
| La retransmisión reenvía un hilo de 6 tweets a la vez | Las auto-respuestas eluden el exclude=replies de la API de X | /setup → 📡 Retransmisión automática de X → @cuenta → desactiva ☐ Continuaciones de hilo. El bot entonces mantiene solo la cabeza. |
| La retransmisión se detuvo a mitad del día | Se alcanzó el límite diario | La pantalla por retransmisión muestra Today: N/N forwarded. Toca ✏️ Límite y auméntalo. Se reinicia a medianoche UTC. |
| La retransmisión muestra ⏸ Pausada pero nunca la pausé | Auto-pausada por chat desaparecido en Telegram (expulsado / bloqueado / chat actualizado) | El bot también detuvo el calendario de sondeo. Para restaurar: /setup → 📡 Retransmisión automática de X → @cuenta → ▶️ Reanudar. Si sigue fallando, el chat mismo puede haber cambiado de ID (actualización a supergrupo) — vuelve a añadir el bot en el chat nuevo. |
| El primer sondeo de la retransmisión reenvió 50 publicaciones | El arranque no debería hacer esto — solo debe sembrar LAST_POST_ID sin reenviar | Si ves esto, repórtalo. La corrección añadida en 2026-04 debería prevenirlo. |
| Los quote tweets siguen apareciendo a pesar del interruptor | La API de X no tiene exclude=quotes del lado del servidor — el bot filtra del lado del cliente | El interruptor funciona, pero aún pagas por los quote tweets devueltos por la API. Ahorro solo cosmético. |
| La retransmisión sondea para siempre a pesar de que el chat fue eliminado | Retransmisión de versión antigua — la auto-limpieza se añadió en 2026-05 | Pide a soporte que fuerce la detención de la retransmisión. Los despliegues nuevos se autolimpian. |
Facturación y créditos
| Síntoma | Causa probable | Solución |
|---|---|---|
| Compré créditos, el saldo no cambió | Webhook de Stripe retrasado | Espera 5 min. Si sigue mal, contacta a soporte con el recibo de Stripe + ID de chat. |
| El conteo de créditos es mayor de lo esperado | Una retransmisión sondeó varias veces durante un período en que la cuenta rastreada estuvo activa | La retransmisión automática de X cobra por publicación. Toca la retransmisión → revisa el contador Today. |
| Cargo de excedente en PRO·sub aunque publiqué poco | Otro uso en el chat (retransmisiones, reportes, reintentos de obtención) | /setup → 💳 Comprar créditos → Uso este mes. Compara contra el cargo medido. |
| Se cobró a un chat FREE | No debería pasar — FREE no tiene cliente de Stripe | Repórtalo de inmediato; esto es un error de facturación. |
| La suscripción muestra "cancelada" pero yo no la cancelé | La cancelación de Stripe puede activarse por fallo de renovación automática de la tarjeta | Revisa el correo en busca de recibos de Stripe, actualiza la tarjeta vía /setup → 💳 → 🛠 Gestionar suscripción (Portal de Clientes de Stripe). |
| Cancelé la suscripción, sigo siendo PRO | Cancelación al final del período: PRO hasta el final del período pagado | Esperado. Revierte a FREE al final del próximo ciclo de facturación. |
Panel público
| Síntoma | Causa probable | Solución |
|---|---|---|
| El proyecto no está en xbot.ninja | No cumple los umbrales (≥ 300 puntuación máxima, ≥ 5 publicaciones, ≥ 2 usuarios activos este mes) | La URL directa aún funciona. Espera a que la métrica alcance el umbral. Las configuraciones de KOL independiente están ocultas de la vitrina intencionalmente. |
| El proyecto está en xbot.ninja pero falta el logo | El logo nunca se subió, o la subida falló | /setup → 🎨 Personalización → 🖼 Logo. Envía un PNG cuadrado. |
| La URL pública muestra el nombre de proyecto antiguo | Se actualiza en el próximo ciclo de reporte | Cambia el nombre vía /setup → 🎨 Personalización → 🏷 Nombre. El slug de la URL + la tarjeta se actualizan una vez que se dispara el próximo reporte. |
| La URL da 404 | El chat fue eliminado permanentemente, O los umbrales aún no se cumplen así que la vitrina lo oculta | Confirma el ID de chat vía /setup → ℹ️ Acerca de. Prueba la URL directa https://xbot.ninja/?chatId=<id>. |
Escalación
Cuando las matrices anteriores no resuelven el problema, contacta a soporte con la plantilla de abajo.
Project: <your project name>
Chat ID: <from /setup → ℹ️ About>
Plan: FREE / PRO·credits / PRO·sub
What's wrong: <1–2 sentences>
What you tried: </setup → … → … steps you ran>
When it broke: <approx UTC time>
Recent change: <any new filter / schedule / payment in the last 24 h>El ID de chat por sí solo le da a soporte el 80% de la información de triage — por favor inclúyelo siempre.
A dónde enviar:
- Soporte general: formulario de contacto de bws.ninja
- Issues de GitHub (consciente de código abierto): bws-api-telegram-xbot/issues
- Telegram directo: @BlockchainWebServices
Tiempos de respuesta por severidad:
- Crítico (bot fuera de línea en toda la plataforma, fallos de facturación): 1 hora hábil durante el solapamiento de horario laboral UE+EE. UU.
- Alto (el reporte de un chat no se está entregando): el mismo día hábil
- Normal (preguntas sobre funciones, ayuda de configuración): 1–2 días hábiles
Comandos de diagnóstico útiles
| Comando | Qué muestra |
|---|---|
/setup → ℹ️ Acerca de | ID de chat, plan, calendario, proyecto — copia esto textualmente en el soporte |
/setup → 🎯 Filtros | Cadena de consulta literal de la API de X |
/setup → 💳 Comprar créditos → 📊 Uso este mes | Contadores diarios + mensuales de fetched_posts — detecta fallos silenciosos (muchos intentos, cero publicaciones → probablemente 402s) |
/setup → 📡 Retransmisión automática de X → @cuenta | Estado por retransmisión (activa / pausada, reenvíos de hoy, límite diario) |
/get_chatid | Solo el ID de chat (una línea si Acerca de es demasiado) |
A dónde ir después
- Instalación — reinstalación limpia si todo lo demás falla
- El menú /setup — referencia completa del menú
- Precios — solución de problemas del lado de facturación
- Soporte — preguntas frecuentes + escalación de contacto