How to correctly throw an Error in Apollo 4 custom plugin hooking into "requestDidStart"? 
In Apollo 3, I was able to throw an Error if there was missing a header I enforce to be present, and the Error got correctly passed into the response to the client:

```typescript
export const gqlPluginServerClientIdentHeader = {
	requestDidStart(gqlServerContext){
		if ((gqlServerContext.context as Ctx).request.body.operationName === 'IntrospectionQuery')
			return;

		if ((gqlServerContext.context as Ctx).request.headers['apollographql-client-name'] === undefined)
			throw new GraphQLError('No \'apollographql-client-name\' header provided! Request not accepted.');
	}
};
``` 

Now while migrating to Apollo 4, I've changed to code to the new structure:

```typescript
export const gqlPluginServerClientIdentHeader: ApolloServerPlugin<BaseContext> = {
	async requestDidStart(gqlServerContext) {
		if ((gqlServerContext.contextValue as Ctx).request.body.operationName === 'IntrospectionQuery')
			return;

		if ((gqlServerContext.contextValue as Ctx).request.headers['apollographql-client-name'] === undefined)
			throw new GraphQLError('No \'apollographql-client-name\' header provided! Request not accepted.', { extensions: { code: ApolloServerErrorCode.BAD_REQUEST } });
	}
};
```

but this leads to the following response to the client:

```
{
  "data": {},
  "errors": [
    {
      "message": "Internal server error",
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR",
        "stacktrace": [
          "Error: Internal server error",
          "    at internalExecuteOperation (/home/node/app/node_modules/@apollo/server/dist/cjs/ApolloServer.js:624:15)",
          "    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)",
          "    at async runHttpQuery (/home/node/app/node_modules/@apollo/server/dist/cjs/runHttpQuery.js:135:29)",
          "    at async runPotentiallyBatchedHttpQuery (/home/node/app/node_modules/@apollo/server/dist/cjs/httpBatching.js:37:16)",
          "    at async ApolloServer.executeHTTPGraphQLRequest (/home/node/app/node_modules/@apollo/server/dist/cjs/ApolloServer.js:525:20)",
          "    at async /home/node/app/node_modules/@as-integrations/koa/dist/index.js:33:47",
          "    at async execute (/home/node/app/app/src/middlewares/lastMiddleware.js:7:5)",
          "    at async check (/home/node/app/app/src/middlewares/dosProtect.js:23:5)",
          "    at async authHandler (/home/node/app/app/src/middlewares/authentication.js:31:5)",
          "    at async check (/home/node/app/app/src/middlewares/xssPrevention.js:9:5)"
        ]
      }
    }
  ]
}
```

response.

Any ideas how to correctly throw an Error in this case? I tried for hours now but can't find a solution for this. The docs don't cover throwing Errors in Plugins (as far as I saw).