undici: Undici throws a terminated error
Bug Description
I have a bug with graphl-codegen which is very likely caused by undici closing the connection and sending a terminated signal?
I have double checked my backend with various graphql clients and plain http requests doing the introspection query, the bug is definitely in undici.
The server receives the request, but it is terminated.
A stacktrace is included below:
Here is the related issue https://github.com/dotansimha/graphql-code-generator/issues/7934
Reproducible By
See the linked issue above
Expected Behavior
Return a response
Logs & Screenshots
See below
Environment
- Ubuntu 20 LTS
- undici 5.1
Additional context
Stacktrace:
` Exited with an error DetailedError: Failed to load schema
at loadSchema (/home/eduard/Projects/ecommerce/frontend/node_modules/@graphql-codegen/cli/bin.js:504:15)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/eduard/Projects/ecommerce/frontend/node_modules/@graphql-codegen/cli/bin.js:1034:65 {
details: '\n' +
' Failed to load schema from http://localhost/service:\n' +
'\n' +
' terminated\n' +
' TypeError: terminated\n' +
' at Fetch.onAborted (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/fetch/index.js:1893:49)\n' +
' at Fetch.emit (node:events:390:28)\n' +
' at Fetch.terminate (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/fetch/index.js:77:10)\n' +
' at Object.onError (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/fetch/index.js:2027:34)\n' +
' at Request.onError (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/core/request.js:237:27)\n' +
' at errorRequest (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/client.js:1711:13)\n' +
' at Socket.onSocketClose (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/client.js:985:5)\n' +
' at Socket.emit (node:events:390:28)\n' +
' at TCP.<anonymous> (node:net:687:12)\n' +
' \n' +
' GraphQL Code Generator supports:\n' +
' - ES Modules and CommonJS exports (export as default or named export "schema")\n' +
' - Introspection JSON File\n' +
' - URL of GraphQL endpoint\n' +
' - Multiple files with type definitions (glob expression)\n' +
' - String in config file\n' +
' \n' +
' Try to use one of above options and run codegen again.\n' +
' \n' +
' ',
source: 'src/',
context: [Object: null prototype] {}
}
Something went wrong Failed to load schema for "src/"
Failed to load schema from http://localhost/service:
terminated
TypeError: terminated
at Fetch.onAborted (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/fetch/index.js:1893:49)
at Fetch.emit (node:events:390:28)
at Fetch.terminate (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/fetch/index.js:77:10)
at Object.onError (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/fetch/index.js:2027:34)
at Request.onError (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/core/request.js:237:27)
at errorRequest (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/client.js:1711:13)
at Socket.onSocketClose (/home/eduard/Projects/ecommerce/frontend/node_modules/undici/lib/client.js:985:5)
at Socket.emit (node:events:390:28)
at TCP.<anonymous> (node:net:687:12)
GraphQL Code Generator supports:
- ES Modules and CommonJS exports (export as default or named export "schema")
- Introspection JSON File
- URL of GraphQL endpoint
- Multiple files with type definitions (glob expression)
- String in config file
Try to use one of above options and run codegen again.
`
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 17 (3 by maintainers)
@thomasaull @LiamKarlMitchell, I got another solution for that, just use node-fetch instead of undici for consuming the api.
Reference: https://www.graphql-code-generator.com/docs/config-reference/schema-field#customfetch
Downgrading node version from 18 to 16 (stable) did the trick for me.
@hpiaia Check my comment in this other issue https://github.com/dotansimha/graphql-code-generator/issues/7934#issuecomment-1166520696 for a workaround.