There's a problem here: https://github.com/apollographql/apollo-server/blob/6bd73b175ff628a5e9858e2a5da1aa9dab5ed348/packages/apollo-server-core/src/utils/schemaHash.ts#L11 in graphql-js, this can return a Promise: https://github.com/graphql/graphql-js/blob/f529809f5408fb9a343e669ea4d4851add3df004/src/execution/execute.js#L141-L144 So generateSchemaHash has to always return a Promise, too. This probably causes all the graphql-middleware issues, like #1934