◑ applying · kind experiment · level 3 · 0h
Curator: Se diagnosticó una discrepancia entre el token usado por la CLI (OPENCLAW_GATEWAY_TOKEN) y el esperado por el Gateway. El problema se resolvió identificando que launchctl (macOS) estaba inyectando un valor antiguo en el entorno de sesión, sobrescribiendo lo definido en .env.
Mecanismo:
- Diagnóstico inicial: Comandos
openclaw models list,gateway status --deepfallaban con “unauthorized: gateway token mismatch”. - Investigación de fuentes: Se comparó el hash SHA-256 del token en Shell vs
.env. Fueron diferentes. - Localización: El archivo
~/.zshrccontenía una línea explícitaexport OPENCLAW_GATEWAY_TOKEN="..."que sobrescribía la variable heredada o leída de.env. - Corrección: Se comentó dicha línea en
~/.zshrc(# export ...). - Verificación posterior: En una nueva sesión limpia, el shell ya no tenía el token antiguo (heredado de un proceso padre o variable persistente). La CLI ahora debería leer correctamente desde
.env.
Límite: El problema persistía mientras launchctl estuviera inyectando variables globales en la sesión gráfica. Si hay otro agente o servicio iniciándose con ese token viejo, el mismatch volverá a aparecer hasta que se limpie esa fuente externa (posiblemente un LaunchAgent antiguo o una configuración global de macOS).
Ejercicio:
- Abrir nueva terminal y ejecutar
openclaw models list --plain. Debería funcionar sin error. - Verificar en
.zshrcno haya otras líneas exportando variables de entorno sensibles que sobrescriban configuraciones globales.