sequelize: Unhandled rejection TypeError: Cannot read property 'query' of undefined
What you are doing?
return sequelize.transaction((tx) => {
return Topping.destroy({where: {pizza_id: request.params.id}, transaction: tx})
.then((res) => {
return Pizza.destroy({
where: {id: request.params.id},
transaction: tx
})
})
}).then((res) => reply('Pizza removed'))
.catch((err) => reply(err)
})
What do you expect to happen?
A Transaction!
What is actually happening?
Unhandled rejection TypeError: Cannot read property 'query' of undefined
at parameters.length.Promise (/Users/me/projects/pizza-api/node_modules/sequelize/lib/dialects/postgres/query.js:65:53)
at Promise._execute (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/debuggability.js:300:9)
at Promise._resolveFromExecutor (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:483:18)
at new Promise (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:79:10)
at Query.run (/Users/me/projects/pizza-api/node_modules/sequelize/lib/dialects/postgres/query.js:65:9)
at retry (/Users/me/projects/pizza-api/node_modules/sequelize/lib/sequelize.js:529:32)
at /Users/me/projects/pizza-api/node_modules/retry-as-promised/index.js:40:21
at Promise._execute (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/debuggability.js:300:9)
at Promise._resolveFromExecutor (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:483:18)
at new Promise (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:79:10)
at retryAsPromised (/Users/me/projects/pizza-api/node_modules/retry-as-promised/index.js:30:10)
at Promise.try.then.connection (/Users/me/projects/pizza-api/node_modules/sequelize/lib/sequelize.js:529:14)
at bound (domain.js:280:14)
at runBound (domain.js:293:12)
at tryCatcher (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromiseCtx (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/promise.js:606:10)
at Async._drainQueue (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/async.js:138:12)
at Async._drainQueues (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/Users/me/projects/pizza-api/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:666:20)
Dialect: postgres Database version: 9.4.5.0 Sequelize version: 4.4.2 Bluebird version: 3.5.0
To note I downgraded to version Sequelize version: 3.29.0, code above goes through fine as expected as a transaction
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 31
- Comments: 34 (18 by maintainers)
Commits related to this issue
- fix(connection-manager): handle null connections in PG See #8087 — committed to gabegorelick/sequelize by gabegorelick 6 years ago
I was able to stop getting this issue increasing the pool of connections and setting a higher value to the new
acquire
config.Still seeing this error for other cases. I filed https://github.com/sequelize/sequelize/issues/9218 to track.
My team was getting this error, but it was due to our own misuse – we accidentally nested a transaction inside an object.
Here’s a sample:
Note that the transaction is inside an unnecessary object. It should look like this:
Work well for me. Thanks man.