postgraphile-lambda-example
postgraphile-lambda-example copied to clipboard
Internal error when hitting endpoint
I'm trying to get a manually-configured Lambda up using this example. When I hit the gateway API endpoint, I get this error in the CloudWatch logs:
"TypeError: Cannot read property 'indexOf' of undefined",
" at Function.getFileName (webpack:///./node_modules/bindings/bindings.js?:178:16)",
" at bindings (webpack:///./node_modules/bindings/bindings.js?:82:48)",
" at Object.eval (webpack:///./node_modules/libpq/index.js?:1:147)",
" at eval (webpack:///./node_modules/libpq/index.js?:361:30)",
" at Object../node_modules/libpq/index.js (/var/task/index.js:3785:1)",
" at __webpack_require__ (/var/task/index.js:20:30)",
" at eval (webpack:///./node_modules/pg-native/index.js?:1:13)",
" at Object../node_modules/pg-native/index.js (/var/task/index.js:5848:1)",
" at __webpack_require__ (/var/task/index.js:20:30)",
" at eval (webpack:///./node_modules/pg/lib/native/client.js?:11:14)"
My postgraphileOptions.js are as follows:
exports.options = {
dynamicJson: true,
cors: true,
graphiql: false,
graphqlRoute: '/graphql',
externalUrlBase: `/${process.env.AWS_STAGE}`,
// If consuming JWT:
// jwtSecret: process.env.JWT_SECRET || String(Math.random()),
// If generating JWT:
//jwtPgTypeIdentifier: process.env.JWT_PG_TYPE_IDENTIFIER,
/* If you want to enable GraphiQL, you must use `externalUrlBase` so PostGraphile
* knows where to tell the browser to find the assets. Doing this is
* strongly discouraged, you should use an external GraphQL client instead.
graphiql: true,
enhanceGraphiql: true,
graphqlRoute: '/',
graphiqlRoute: '/graphiql',
*/
};
I'd appreciate any help anyone could give.
Are you using yarn
or npm
? It might be worth using yarn
and using this specific lockfile just in case one of the dependencies broke something.
Also you seem to be using pg-native
; I recommend against using pg-native
- it's normally slower than the JS version and harder to trace.
Hi Benjie. Thanks for getting back to me. I'm using yarn so it should be using the lockfile in the repo.
How do I tell it not to use pg-native? I don't think I changed anything around that dependency.
Finally, would this have anything to do with building the lambda on Windows?
I'm afraid I don't know the answers to your questions. It definitely worked last time I tried it, but that was months ago.
We have this which "forces native":
https://github.com/graphile/postgraphile-lambda-example/blob/2b1a9fb3f4f91ede37f52546219cdffd871485b7/webpack.config.js#L21
But that should be overridden by this, which uses the JS client only:
https://github.com/graphile/postgraphile-lambda-example/blob/2b1a9fb3f4f91ede37f52546219cdffd871485b7/webpack.config.js#L28
It looks, however, like your one is referencing pg/lib/native/client.js
rather than pg/lib/native/index.js
. Not sure if this is relevant.