Troubleshooting
Esta página agrupa los síntomas más reportados por integradores y operadores detecsas3-cli con la acción correctiva mínima para cada uno. Cuando un
fallo no aparezca aquí, ejecuta primero tecsas3 util ping y
tecsas3 auth whoami para acotar el problema a red, perfil o
autorización.
Antes de depurar, asegúrate de usar la última versión estable:
Tabla de síntomas → fixes
La columna Fix contiene la acción mínima. Si el síntoma reaparece
tras aplicarla, abre un issue con la salida de
tecsas3 util security-check
y la versión del binario.Auditoría de seguridad
tecsas3 util security-check audita los permisos del directorio de
configuración y del archivo de credenciales sin enviar datos al backend.
Es la primera verificación que debes correr en producción, en CI y tras
cualquier rotación de credenciales.
status: "WARN" significa que al menos un archivo excede los
permisos esperados. Aplica la corrección de la columna Fix y vuelve
a correr el comando.
Diagnóstico por categoría
Autenticación y tokens
Los401 casi siempre se deben a tokens vencidos, perfiles que apuntan
al entorno equivocado o scopes insuficientes. Flujo recomendado:
whoami muestra el perfil equivocado, el CLI está leyendo la
variable TECSAS3_PROFILE o el argumento --profile. Limpia el entorno
y vuelve a intentarlo.
Multi-tenant y autorización
Los403 rara vez son de scopes: casi siempre el perfil activo no tiene
tenant-org o plan-id asignado para el recurso solicitado. El CLI
inyecta los headers X-Tenant-Slug, X-Tenant-Org-ID y X-Plan-ID en
cada request; si alguno falta, el backend rechaza con 403.
FHIR y rutas legacy
La ruta/eps_fhir/eps/patients/ quedó obsoleta al pasar al recurso
fhir. Si una integración antigua devuelve 500, estás pegándole al
endpoint equivocado. Migra a:
Keyring y archivos de credenciales
El CLI intenta primerokeyring (nativo del sistema operativo). Si no
está disponible —常见的 en contenedores CI sin dbus, en sesiones SSH
sin agent o en Windows sin Windows Credential Manager —, cae a
~/.tecsas3/credentials y aplica chmod 0600 automáticamente.
Si el archivo termina con permisos laxos (por ejemplo tras un cp o un
tar que preservó bits), security-check lo detecta y reporta WARN.
Salida no determinista para agentes
Cualquier agente de IA necesita JSON estable. Si recibes tablas, spinners o prompts, falta la combinación canónica:--json cambia el serializador a JSON canónico. --no-input desactiva
cualquier prompt interactivo y falla con código 2 si el comando lo
hubiera requerido.
Configuración inválida
HTTPS obligatorio se dispara al construir el Settings con un
base_url http:// que no es localhost. En local puedes usar
http://localhost:8000; en cualquier otro caso usa https:// o un
proxy TLS terminado.
Falta tenant se dispara cuando el comando lo requiere y ni la variable
TECSAS3_TENANT, ni el perfil, ni el argumento --tenant están
presentes. Soluciones:
Pipelines (pipe)
pipe run resuelve cada step en un subproceso del propio CLI. El error
No module named tecsas3_cli significa que el binario tecsas3 apunta
a un Python sin el paquete instalado. Dos opciones:
Drift de rich
rich cambió sus caracteres Unicode de caja en versiones recientes
(de ┌─┐└─┘ a ╭─╮╰─╯). La suite golden de --help está anclada a
rich>=13.7,<16; actualizar más allá de 16 rompe los snapshots. Si
ves caracteres raros en tecsas3 --help o en los diffs de CI: