parece como si la solicitud no se está reintentando.
operation.setContext()then() se está llamando con éxito (la captura no se activa)La idea es de ¿Cómo ejecutar una solicitud de recuperación asíncrona y luego volver a intentar la última solicitud fallida? y es la respuesta aceptada.
const errorLink = onError( ({ graphQLErrors, networkError, operation, forward }) => { if (graphQLErrors) { for (let err of graphQLErrors) { switch (err.message) { case "Signature has expired": return new Observable((observer) => { getNewToken() .then((token) => { operation.setContext(({ headers = {} }) => { return { headers: { ...headers, authorization: `JWT ${token}`, }, }; }); }) .then(() => { const subscriber = { next: observer.next.bind(observer), error: observer.error.bind(observer), complete: observer.complete.bind(observer), }; forward(operation).subscribe(subscriber); }) .catch((error) => { // No refresh or client token available, we force user to login observer.error(error); }); }); } } } } );