From 0e118b69b7b20a043ff1b7c44d90d0ee725dafd5 Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 1 May 2019 11:56:35 +1000 Subject: [PATCH 1/2] disable callbackWaitsForEmptyEventLoop Disable callbackWaitsForEmptyEventLoop for HTTP OPTIONS request since ApolloServer already disable callbackWaitsForEmptyEventLoop for POST request. (https://github.com/apollographql/apollo-server/blob/1ec2890397ca306350b0e1f33eec7b5f3f951d8d/packages/apollo-server-lambda/src/lambdaApollo.ts#L33) Otherwise is lambda event loop is not empty, subsequence HTTP OPTIONS request will be hang and even timeout without throwing proper error. --- packages/apollo-server-lambda/src/ApolloServer.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/apollo-server-lambda/src/ApolloServer.ts b/packages/apollo-server-lambda/src/ApolloServer.ts index 12859599b1b..24fe6415363 100644 --- a/packages/apollo-server-lambda/src/ApolloServer.ts +++ b/packages/apollo-server-lambda/src/ApolloServer.ts @@ -119,6 +119,7 @@ export class ApolloServer extends ApolloServerBase { } if (event.httpMethod === 'OPTIONS') { + context.callbackWaitsForEmptyEventLoop = false return callback(null, { body: '', statusCode: 204, From 99df738a9806414559d980acfa716d067f79d9ca Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 1 May 2019 12:05:39 +1000 Subject: [PATCH 2/2] fix prettier issue fix prettier issue --- packages/apollo-server-lambda/src/ApolloServer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apollo-server-lambda/src/ApolloServer.ts b/packages/apollo-server-lambda/src/ApolloServer.ts index 24fe6415363..ce73152a746 100644 --- a/packages/apollo-server-lambda/src/ApolloServer.ts +++ b/packages/apollo-server-lambda/src/ApolloServer.ts @@ -119,7 +119,7 @@ export class ApolloServer extends ApolloServerBase { } if (event.httpMethod === 'OPTIONS') { - context.callbackWaitsForEmptyEventLoop = false + context.callbackWaitsForEmptyEventLoop = false; return callback(null, { body: '', statusCode: 204,