◑ 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:

  1. Diagnóstico inicial: Comandos openclaw models list, gateway status --deep fallaban con “unauthorized: gateway token mismatch”.
  2. Investigación de fuentes: Se comparó el hash SHA-256 del token en Shell vs .env. Fueron diferentes.
  3. Localización: El archivo ~/.zshrc contenía una línea explícita export OPENCLAW_GATEWAY_TOKEN="..." que sobrescribía la variable heredada o leída de .env.
  4. Corrección: Se comentó dicha línea en ~/.zshrc (# export ...).
  5. 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 .zshrc no haya otras líneas exportando variables de entorno sensibles que sobrescriban configuraciones globales.

Enlaces

Fuentes