agent-device devices fails with "Request ID is already in flight" when a token holds several leases on one worker

Abierto Apto para principiantes
#1,293 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@V3RON ya está trabajando en esto.

Desde el 6/11/2026.

  • #1352 de @V3RON — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
api, backend

Línea de trabajo

Empieza por src/agent-device/front/devices-filter.ts, alrededor de las líneas 119–131, donde devicesThroughGateway envía solicitudes a los leases en paralelo, e inspecciona cómo se crean y se reenvían los IDs de solicitud. Comprueba si las solicitudes enviadas al mismo worker necesitan IDs distintos y añade o actualiza una prueba para un token con varios leases en un worker. El trabajo estará hecho cuando devices devuelva dispositivos para todos los leases sin un error por ID de solicitud duplicado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug:new platform:ios
What happened

With one agent token holding several leases through a gateway, the agent-device devices command fails with INVALID_ARGS "Request ID is already in flight" (agent-device reason duplicate_request_id).

Probable cause: devicesThroughGateway (src/agent-device/front/devices-filter.ts:119-131) sends the same request body, including the same request id, and the same headers to every lease in parallel with Promise.all. When two of those leases are on the same worker, that worker's agent-device daemon gets one request id twice at once and refuses the second.

What you expected

devices lists the devices of every lease the token holds.

How to reproduce
  1. A gateway with one worker that can host at least two iOS simulators.
  2. With one agent token, allocate two iOS leases through /v1/agent-device (agent-device leases.allocate, two sessions).
  3. Send devices through the proxy with that token.
  4. It fails with "Request ID is already in flight". Reported by budgie; not reproduced in simlock yet.
Environment

budgie's farm: a gateway plus a Mac Studio worker (simlock version not stated in the PR). Client: agent-device 0.21.35 on Linux. iOS 26 simulators.

Logs and evidence

Found by budgie's e2e suite (budgie-at/budgie#1867). Its relay (e2e/support/simlock/relay.ts) answers boot locally partly to avoid this: "simlock's devices for a token holding several leases collides with itself ("Request ID is already in flight")".

Written by an agent.

Lenguaje dominante
TypeScript
Estrellas
535
Forks
21
Merge medio
9 h 31 min
PR fusionados (30 d)
434

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de callstackincubator/simlock

Todos los issues de callstackincubator/simlock

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.