This repository was archived by the owner on May 17, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 14
Cannot read property 'definitions' of undefined #313
Copy link
Copy link
Open
Description
Hello, I'm trying to set up my WebSocket server however I'm getting this error on my CloudWatch logs for my lambda function:
Reason: TypeError: Cannot read property 'definitions' of undefined
{
"errorType": "GoneException",
"errorMessage": "410",
"code": "GoneException",
"message": "410",
"statusCode": 410,
"time": "2023-01-24T08:29:17.212Z",
"requestId": "75e1aa0a-28c3-460a-a879-21271cd308a4",
"retryable": false,
"retryDelay": 69.89051258006047,
"stack": [
"GoneException: 410",
" at Object.extractError (/var/task/node_modules/aws-sdk/lib/protocol/json.js:52:27)",
" at Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/rest_json.js:61:8)",
" at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
" at Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
" at Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:686:14)",
" at Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)",
" at AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)",
" at /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10",
" at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)",
" at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:688:12)",
" at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:116:18)",
" at Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
" at Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:686:14)",
" at Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)",
" at AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)",
" at /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10",
" at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)",
" at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:688:12)",
" at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:116:18)",
" at callNextListener (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:96:12)",
" at IncomingMessage.onEnd (/var/task/node_modules/aws-sdk/lib/event_listeners.js:417:13)",
" at IncomingMessage.emit (events.js:412:35)"
]
}
Does anyone know how to fix this? I'm not sure where the error is coming from. This is the code for my handler
handler.js
const AWS = require('aws-sdk')
AWS.config.update({region: 'XXX'})
const dynamodb = new AWS.DynamoDB()
const { makeServer, subscribe } = require('graphql-lambda-subscriptions')
const schema = require("./../../lib/schema")
const createQueryContext = require("./../../lib/utils/createQueryContext")
const schemaPermissions = require("./../../lib/schema/security/schemaPermissions");
const { applyMiddleware } = require("graphql-middleware")
const subscriptionServer = makeServer({
schema: applyMiddleware(schema, schemaPermissions),
dynamodb,
tableNames: {
connections: 'XXX',
subscriptions: 'XXX'
},
context: (event) => {
const { connectionInitPayload, connectionId, publish, complete } = event
console.log(event)
if (connectionInitPayload.token) return createQueryContext({ Authorization: connectionInitPayload.token })
else return null
},
onConnect: (event) => {
console.log(event)
},
onDisconnect: (event) => {
console.log(event)
},
onConnectionInit: async ({ event }) => {
const { requestContext, body, isBase64Encoded } = event
const { type, payload } = JSON.parse(body)
let tPayload = JSON.parse(body)
//! Validation needed here
console.log(JSON.parse(body))
if (tPayload?.payload?.headers?.Authorization) {
return {
token: tPayload?.payload?.headers?.Authorization
}
} else return { ...tPayload }
},
onError: (error, context) => {
console.error('ERROR! - Websocket handler has encountered an error. Reason: ' + error)
console.error(JSON.stringify(error))
},
onPing: (event, message) => {
console.log(event)
},
onPong: (event, message) => {
console.log(event)
},
})
module.exports.handler = subscriptionServer.webSocketHandler
Metadata
Metadata
Assignees
Labels
No labels