node-js-jwt-auth icon indicating copy to clipboard operation
node-js-jwt-auth copied to clipboard

Cannot add or update a child row: a foreign key constraint fails

Open Lopastudio opened this issue 1 year ago • 0 comments

I made this API acording to the tutorial, and after starting it up, I started getting this error: Cannot add or update a child row: a foreign key constraint fails (ne028304db.user_roles, CONSTRAINT user_roles_ibfk_1 FOREIGN KEY (roleId) REFERENCES roles (id) ON DELETE CASCADE ON UPDATE CASCADE) It only occurs when I try to register and the api crashes. Here is a full error:

node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error
    at Query.run (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\sequelize\lib\dialects\mysql\query.js:52:25)
    at B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\sequelize\lib\sequelize.js:315:28
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MySQLQueryInterface.bulkInsert (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\sequelize\lib\dialects\abstract\query-interface.js:346:21)
    at async recursiveBulkCreate (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\sequelize\lib\model.js:1697:25)
    at async user_roles.bulkCreate (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\sequelize\lib\model.js:1786:12)
    at async Promise.all (index 0)
    at async BelongsToMany.set (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\sequelize\lib\associations\belongs-to-many.js:452:14) {
  name: 'SequelizeForeignKeyConstraintError',
  parent: Error: Cannot add or update a child row: a foreign key constraint fails (`ne028304db`.`user_roles`, CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`roleId`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) 
      at Packet.asError (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\packets\packet.js:728:17)
      at Query.execute (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\commands\command.js:29:26)
      at Connection.handlePacket (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\connection.js:456:32)
      at PacketParser.onPacket (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\connection.js:85:12)
      at PacketParser.executeStart (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\packet_parser.js:75:16)
      at Socket.<anonymous> (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\connection.js:92:25)
      at Socket.emit (node:events:513:28)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Readable.push (node:internal/streams/readable:234:10) {
    code: 'ER_NO_REFERENCED_ROW_2',
    errno: 1452,
    sqlState: '23000',
    sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`ne028304db`.`user_roles`, CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`roleId`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)',
    sql: "INSERT INTO `user_roles` (`createdAt`,`updatedAt`,`roleId`,`userId`) VALUES ('2023-07-21 07:45:14','2023-07-21 07:45:14',1,7);",
    parameters: undefined
  },
  original: Error: Cannot add or update a child row: a foreign key constraint fails (`ne028304db`.`user_roles`, CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`roleId`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
      at Packet.asError (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\packets\packet.js:728:17)
      at Query.execute (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\commands\command.js:29:26)
      at Connection.handlePacket (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\connection.js:456:32)
      at PacketParser.onPacket (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\connection.js:85:12)
      at PacketParser.executeStart (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\packet_parser.js:75:16)
      at Socket.<anonymous> (B:\code\Projects\Quizztopia\backend\Quizztopia\AuthServer\node_modules\mysql2\lib\connection.js:92:25)
      at Socket.emit (node:events:513:28)
      at addChunk (node:internal/streams/readable:324:12)
      at readableAddChunk (node:internal/streams/readable:297:9)
      at Readable.push (node:internal/streams/readable:234:10) {
    code: 'ER_NO_REFERENCED_ROW_2',
    errno: 1452,
    sqlState: '23000',
    sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`ne028304db`.`user_roles`, CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`roleId`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)',
    sql: "INSERT INTO `user_roles` (`createdAt`,`updatedAt`,`roleId`,`userId`) VALUES ('2023-07-21 07:45:14','2023-07-21 07:45:14',1,7);",
    parameters: undefined
  },
  sql: "INSERT INTO `user_roles` (`createdAt`,`updatedAt`,`roleId`,`userId`) VALUES ('2023-07-21 07:45:14','2023-07-21 07:45:14',1,7);",
  parameters: {},
  table: 'roles',
  fields: [ 'roleId' ],
  value: undefined,
  index: 'user_roles_ibfk_1',
  reltype: 'child'
}

Node.js v18.15.0

Thanks to everyone :)

Lopastudio avatar Jul 21 '23 07:07 Lopastudio