'"Request is not available" on apollo graphql query to withApiAuthRequired endpoint

I'm fairly new to graphql/apollo setup, and am stuck on the following issue:

My setup looks like this roughly:

Resolvers:

export const resolvers: Resolvers = {
  Query: {
    getUser: withApiAuthRequired(getUser)
  }
};
async function getUser(req: any, res: any) {
  try {
    const { accessToken } = await getAccessToken(req, res);
    console.log(accessToken);
  } catch (error) {
    console.error(error);
    res.status(error.status || 500).end(error.message);
  }
}

Client caller:

      const data = await client.query({
        query: gql`
          query UsersQuery {
            getUser
          }
        `
      });
      console.log(data);

The error I get:

Uncaught (in promise) Error: Request is not available
    at new ApolloError (index.js?f0e4:29:1)
    at eval (QueryManager.js?2692:596:1)
    at both (asyncMap.js?bd9c:16:46)
    at eval (asyncMap.js?bd9c:9:57)
    at new Promise (<anonymous>)
    at Object.then (asyncMap.js?bd9c:9:1)
    at Object.eval [as next] (asyncMap.js?bd9c:17:1)
    at notifySubscription (module.js?9653:132:1)
    at onNotify (module.js?9653:176:1)
    at SubscriptionObserver.next (module.js?9653:225:1)
    at eval (iteration.js?aad9:4:50)
    at Array.forEach (<anonymous>)
    at iterateObserversSafely (iteration.js?aad9:4:1)
    at Object.next (Concast.js?eb39:25:43)
    at notifySubscription (module.js?9653:132:1)
    at onNotify (module.js?9653:176:1)
    at SubscriptionObserver.next (module.js?9653:225:1)
    at eval (createHttpLink.js?2d67:103:1)

Thank you so much for the guidance!



Solution 1:[1]

try this one:

const data = await client.query({
  query: gql `
          query {
            getUser
          }
        `
});
console.log(data);

Solution 2:[2]

I believe the issue is that I was trying to use withApiAuthRequired inside Resolvers. The argument to Resolvers needs to be an unwrapped function to work. I ended up just skipping the withApiAuthRequired wrapper and using getSession instead.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Moein moeinnia
Solution 2 Peter Lu