Troubleshooting (síntoma → causa)
Fuente: runbook 23. Medido en el incidente 2026-07-13 (502 público + bucle de containers).
| Síntoma | Causa | Qué hacer |
|---|---|---|
Muchos Exited 128/255 a la misma hora, failed to bind host port | Flap de malla privada con bind a IP malla privada (mitigado 2026-07-14; si reaparece, se perdió SOCIETY_BIND_IP=0.0.0.0) | grep SOCIETY_BIND_IP /opt/sis/.env + private-mesh status; recrear con prod-up.sh |
| Puerto SIS accesible desde internet | Falta DROP (puerto nuevo tras el último sis-firewall.sh) | sudo /opt/sis/tools/ops/sis-firewall.sh |
| 502 en el doalmacén de objetos; container «Up (healthy)» | Huérfano: Networks={}, Ports={} (vino de containers start) | Recrear con prod-up.sh |
InvalidPasswordError / auth failed society@pg | Recreado sin --env-file o sin overlay prod | Recrear con prod-up.sh |
Temporary failure in name resolution (base de datos relacional) en bucle | Sin red orquestador de contenedores | Recrear con prod-up.sh |
edge-proxy reload dice config is unchanged y el vhost no cambió | Bind mount por inodo; mv/sed -i | Escribir truncando el fichero; stat -c %i antes y después |
| Let's Encrypt HTTP 429 | vhost añadido antes de que el DNS apuntara a la caja | Esperar; no reintentar en caliente. Pasó con chat.identia.do |
| Conversation UI no arranca / sin red | SiS no está up o falta red externa self-improving-society_default | make up (o prod) primero; luego cd infra/conversation-ui && containers compose up -d |
Conversation UI 500 en /oauth/openid | Falta DOMAIN_SERVER / DOMAIN_CLIENT en infra/conversation-ui/.env | Rellenar como en .env.example; reiniciar sis-conversation-ui |
502 en chat. con SiS sano | Stack sis-conversation-ui caído o bind no loopback tras mover proxy de entrada | containers ps | grep sis-conversation-ui; conversation-ui_BIND=127.0.0.1 si proxy de entrada es local |
503 en /ontology-catalog/link | Falta SOCIETY_ontology-catalog_* en el compose de la caja, no (solo) en el .env | anadir_ontology-catalog_compose.py + recrear telemetry |
| Botón Ontología apagado | Falta SOCIETY_ontology-catalog_PUBLIC_URL | Ver el title del botón |
| Pestaña Ontología en blanco, HTTP 200 | Explorer servido bajo ruta de la Consola | Tiene que ser onto.<cliente>.do (origen propio) |
containers compose muestra ports: de banco de ontología y no escucha | Red internal: true ignora publish | Eso es el rele (ontology-catalog-rele :8010) |
| canal de mensajería mudo tras restart | PID 1 no relee sticky; o se perdió creds.json | runtime del agente profile use + restart; no hay reproducción de sesión |
| Mensaje al bot sin respuesta, mismo teléfono que escaneó el QR | Te lo mandas a ti mismo | Probar desde otra cuenta |
ci-check verde / rojo según el shell | venv delante o no | Usar ci-check / uv run desde la raíz, no pytest suelto |
| Firma de entregable «el writer equivocado» | Resolución por name solo | Ya parcheado: identidad = par. Si un dato viejo no tiene autor, la reconciliación no reescribe |
Recrear base de datos relacional no borra pg-data. Un restore de backup.sh sí.