Erreur lors de la sauvegarde du brouillon: Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`questionnaire_absentees`, CONSTRAINT `questionnaire_absentees_ibfk_2` FOREIGN KEY (`apprenant_id`) REFERENCES `apprenants` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at /home/boer7121/backend.qualiopact.fr/routes.js:4421:28
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5) {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM apprenants WHERE project_id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`questionnaire_absentees`, CONSTRAINT `questionnaire_absentees_ibfk_2` FOREIGN KEY (`apprenant_id`) REFERENCES `apprenants` (`id`))'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-21T09:11:19.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-14T10:27:38.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-07T14:56:48.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-22T13:13:22.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-20T09:27:25.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Aucun destinataire trouvé pour MANITOU BF (ID: 1564)
Aucun destinataire trouvé pour MANITOU BF (ID: 1564)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-23T07:22:51.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-04-29T06:03:22.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-27T07:18:41.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-27T07:52:52.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-02T08:47:45.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des données du suivi: Error: write ECONNRESET
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at getAllSuiviPedagogique (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:335:37)
    at /home/boer7121/backend.qualiopact.fr/routes.js:5854:24
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5) {
  code: 'ECONNRESET',
  errno: -104,
  sql: undefined,
  sqlState: undefined,
  sqlMessage: undefined
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-08T17:34:16.000Z
}
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-20T17:11:12.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-02T08:17:49.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : JsonWebTokenError: jwt malformed
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:70:17)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:346:12)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:280:10)
    at Function.handle (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:175:3)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-03T14:21:30.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-02T14:24:44.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-05T15:51:02.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-23T14:00:21.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-09T07:28:07.000Z
}
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-05T14:36:50.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-09T07:32:10.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-05-19T10:50:28.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-10T14:56:09.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-05T13:50:16.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-12T07:43:55.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-11T09:36:07.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : JsonWebTokenError: jwt malformed
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:70:17)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:346:12)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:280:10)
    at Function.handle (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:175:3)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-09T07:26:42.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-12T10:15:50.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-12T10:36:09.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-13T13:20:15.000Z
}
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-13T13:20:15.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-13T12:54:55.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-13T13:21:23.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-16T10:10:47.000Z
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-11T13:18:45.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-16T13:19:34.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-23T12:05:58.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-11T09:26:48.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Attention: Variables non remplacées dans le template devis-confirmation: [ '{{devisURL}}' ]
Variables fournies: [ 'logoUrl', 'prenom', 'nom', 'client', 'formation', 'date' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-27T06:56:25.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-27T07:04:41.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Aucun destinataire trouvé pour OUEST BOULANGERE (ID: 1913)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
Erreur lors du téléchargement du fichier: TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["Content-Disposition"]
    at ServerResponse.setHeader (node:_http_outgoing:703:3)
    at /home/boer7121/backend.qualiopact.fr/routes.js:3739:11
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5) {
  code: 'ERR_INVALID_CHAR'
}
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project_assignments`, CONSTRAINT `project_assignments_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertAssignment (/home/boer7121/backend.qualiopact.fr/queries/project_assignment_queries.js:41:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:160:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '        INSERT INTO project_assignments (\n' +
    '          project_id, assigned_to, assigned_by, notes, assigned_at\n' +
    '        )\n' +
    '        VALUES (?, ?, ?, ?, ?)\n' +
    '        ON DUPLICATE KEY UPDATE\n' +
    '          project_id = VALUES(project_id),\n' +
    '          assigned_to = VALUES(assigned_to),\n' +
    '          assigned_by = 10,\n' +
    `          notes = "Ajout d'odoo",\n` +
    '          assigned_at = VALUES(assigned_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project_assignments`, CONSTRAINT `project_assignments_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project_assignments`, CONSTRAINT `project_assignments_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertAssignment (/home/boer7121/backend.qualiopact.fr/queries/project_assignment_queries.js:41:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:160:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '        INSERT INTO project_assignments (\n' +
    '          project_id, assigned_to, assigned_by, notes, assigned_at\n' +
    '        )\n' +
    '        VALUES (?, ?, ?, ?, ?)\n' +
    '        ON DUPLICATE KEY UPDATE\n' +
    '          project_id = VALUES(project_id),\n' +
    '          assigned_to = VALUES(assigned_to),\n' +
    '          assigned_by = 10,\n' +
    `          notes = "Ajout d'odoo",\n` +
    '          assigned_at = VALUES(assigned_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project_assignments`, CONSTRAINT `project_assignments_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project_assignments`, CONSTRAINT `project_assignments_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertAssignment (/home/boer7121/backend.qualiopact.fr/queries/project_assignment_queries.js:41:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:160:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '        INSERT INTO project_assignments (\n' +
    '          project_id, assigned_to, assigned_by, notes, assigned_at\n' +
    '        )\n' +
    '        VALUES (?, ?, ?, ?, ?)\n' +
    '        ON DUPLICATE KEY UPDATE\n' +
    '          project_id = VALUES(project_id),\n' +
    '          assigned_to = VALUES(assigned_to),\n' +
    '          assigned_by = 10,\n' +
    `          notes = "Ajout d'odoo",\n` +
    '          assigned_at = VALUES(assigned_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project_assignments`, CONSTRAINT `project_assignments_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Aucun destinataire trouvé pour WIBAIE (ID: 1589)
Aucun destinataire trouvé pour WIBAIE (ID: 1589)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Aucun destinataire trouvé pour WIBAIE (ID: 1589)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-03-17T13:26:50.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Aucun destinataire trouvé pour TIPIAK EPICERIE (ID: 1584)
Erreur lors de la création de l'utilisateur externe: Error: Cet email est déjà utilisé.
    at addUser (/home/boer7121/backend.qualiopact.fr/queries/user_queries.js:207:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:9688:23 {
  status: 409
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
❌ Erreur lors de la mise à jour du suivi pédagogique : Error: Données de fiche de renseignement ou convention manquantes.
    at updateSuiviPedagogiqueAfterQuestionnaires (/home/boer7121/backend.qualiopact.fr/queries/suivi_pedagogique_queries.js:191:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:5762:20
❌ Documents manquants pour le projet 291 : 1/2 docs, 7/7 convocations
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-03T13:11:24.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-27T06:53:34.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-13T12:20:18.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-30T08:22:58.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-07-01T09:47:22.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-30T13:37:08.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors du traitement de la requête : Error: ENOENT: no such file or directory, open '/home/boer7121/backend.qualiopact.fr/upload/4174/PRJ-447/Doc_Pendant_Formation/CR_Romaire_Flux Peinture 17/03_1782910236824.pdf'
    at Object.openSync (node:fs:560:18)
    at Object.writeFileSync (node:fs:2444:35)
    at /home/boer7121/backend.qualiopact.fr/routes.js:1156:12
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/home/boer7121/backend.qualiopact.fr/upload/4174/PRJ-447/Doc_Pendant_Formation/CR_Romaire_Flux Peinture 17/03_1782910236824.pdf'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertFrais (/home/boer7121/backend.qualiopact.fr/queries/frais_queries.js:30:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:202:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO frais (\n' +
    '        id, user_id, project_id, date_depense, categorie, montant_ht, montant_ttc,\n' +
    '        type_payement, approved, raison)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        date_depense = VALUES(date_depense),\n' +
    '        categorie = VALUES(categorie),\n' +
    '        montant_ht = VALUES(montant_ht),\n' +
    '        montant_ttc = VALUES(montant_ttc),\n' +
    '        type_payement = VALUES(type_payement),\n' +
    '        approved = VALUES(approved),\n' +
    '        raison = VALUES(raison)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertFrais (/home/boer7121/backend.qualiopact.fr/queries/frais_queries.js:30:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:202:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO frais (\n' +
    '        id, user_id, project_id, date_depense, categorie, montant_ht, montant_ttc,\n' +
    '        type_payement, approved, raison)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        date_depense = VALUES(date_depense),\n' +
    '        categorie = VALUES(categorie),\n' +
    '        montant_ht = VALUES(montant_ht),\n' +
    '        montant_ttc = VALUES(montant_ttc),\n' +
    '        type_payement = VALUES(type_payement),\n' +
    '        approved = VALUES(approved),\n' +
    '        raison = VALUES(raison)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertFrais (/home/boer7121/backend.qualiopact.fr/queries/frais_queries.js:30:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:202:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO frais (\n' +
    '        id, user_id, project_id, date_depense, categorie, montant_ht, montant_ttc,\n' +
    '        type_payement, approved, raison)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        date_depense = VALUES(date_depense),\n' +
    '        categorie = VALUES(categorie),\n' +
    '        montant_ht = VALUES(montant_ht),\n' +
    '        montant_ttc = VALUES(montant_ttc),\n' +
    '        type_payement = VALUES(type_payement),\n' +
    '        approved = VALUES(approved),\n' +
    '        raison = VALUES(raison)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertFrais (/home/boer7121/backend.qualiopact.fr/queries/frais_queries.js:30:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:202:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO frais (\n' +
    '        id, user_id, project_id, date_depense, categorie, montant_ht, montant_ttc,\n' +
    '        type_payement, approved, raison)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        date_depense = VALUES(date_depense),\n' +
    '        categorie = VALUES(categorie),\n' +
    '        montant_ht = VALUES(montant_ht),\n' +
    '        montant_ttc = VALUES(montant_ttc),\n' +
    '        type_payement = VALUES(type_payement),\n' +
    '        approved = VALUES(approved),\n' +
    '        raison = VALUES(raison)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-07-01T15:34:12.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:34:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:179:7 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO project (\n' +
    '        id, titre, client_id, commercial_id, heure_a_planifier,\n' +
    '        heure_planifier, create_date, starting_date, ending_date,\n' +
    '        status, total_amount, description, updated_at\n' +
    '      )\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        titre = VALUES(titre),\n' +
    '        client_id = VALUES(client_id),\n' +
    '        commercial_id = VALUES(commercial_id),\n' +
    '        heure_a_planifier = VALUES(heure_a_planifier),\n' +
    '        heure_planifier = VALUES(heure_planifier),\n' +
    '        create_date = VALUES(create_date),\n' +
    '        starting_date = VALUES(starting_date),\n' +
    '        ending_date = VALUES(ending_date),\n' +
    '        status = VALUES(status),\n' +
    '        total_amount = VALUES(total_amount),\n' +
    '        description = VALUES(description),\n' +
    '        updated_at = VALUES(updated_at)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`project`, CONSTRAINT `project_ibfk_1` FOREIGN KEY (`client_id`) REFERENCES `entreprise` (`id`))'
}
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
BrokenPipeError: [Errno 32] Broken pipe
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-07-02T09:16:41.000Z
}
node[3780375]: pthread_create: Resource temporarily unavailable
node[3781664]: pthread_create: Resource temporarily unavailable
node[3781790]: pthread_create: Resource temporarily unavailable
node[3781970]: pthread_create: Resource temporarily unavailable
node[3782085]: pthread_create: Resource temporarily unavailable
node[3782274]: pthread_create: Resource temporarily unavailable
node[3782421]: pthread_create: Resource temporarily unavailable
node[3782550]: pthread_create: Resource temporarily unavailable
node[3782721]: pthread_create: Resource temporarily unavailable
node[3782914]: pthread_create: Resource temporarily unavailable
node[3783169]: pthread_create: Resource temporarily unavailable
node[3783333]: pthread_create: Resource temporarily unavailable
node[3783478]: pthread_create: Resource temporarily unavailable
node[3783580]: pthread_create: Resource temporarily unavailable
node[3783697]: pthread_create: Resource temporarily unavailable
node[3783957]: pthread_create: Resource temporarily unavailable
node[3784262]: pthread_create: Resource temporarily unavailable
node[3786467]: pthread_create: Resource temporarily unavailable
node[3786811]: pthread_create: Resource temporarily unavailable
node[3857490]: pthread_create: Resource temporarily unavailable
node[3857756]: pthread_create: Resource temporarily unavailable
node[3857915]: pthread_create: Resource temporarily unavailable
node[2460976]: pthread_create: Resource temporarily unavailable
node[2461089]: pthread_create: Resource temporarily unavailable
node[2461276]: pthread_create: Resource temporarily unavailable
node[2462531]: pthread_create: Resource temporarily unavailable
node[2462647]: pthread_create: Resource temporarily unavailable
node[2462745]: pthread_create: Resource temporarily unavailable
node[2462893]: pthread_create: Resource temporarily unavailable
node[2462950]: pthread_create: Resource temporarily unavailable
node[2463081]: pthread_create: Resource temporarily unavailable
node[2463234]: pthread_create: Resource temporarily unavailable
node[2463314]: pthread_create: Resource temporarily unavailable
node[2463441]: pthread_create: Resource temporarily unavailable
node[2463520]: pthread_create: Resource temporarily unavailable
node[2463624]: pthread_create: Resource temporarily unavailable
node[2463792]: pthread_create: Resource temporarily unavailable
node[2463942]: pthread_create: Resource temporarily unavailable
lscgid: execve():/home/boer7121/nodevenv/backend.qualiopact.fr/22/bin/node: Resource temporarily unavailable
node[2463993]: pthread_create: Resource temporarily unavailable
node[2464075]: pthread_create: Resource temporarily unavailable
node[2464179]: pthread_create: Resource temporarily unavailable
node[2464353]: pthread_create: Resource temporarily unavailable
node[2465510]: pthread_create: Resource temporarily unavailable
node[2465641]: pthread_create: Resource temporarily unavailable
node[2465711]: pthread_create: Resource temporarily unavailable
node[2465823]: pthread_create: Resource temporarily unavailable
node[2465887]: pthread_create: Resource temporarily unavailable
node[2466023]: pthread_create: Resource temporarily unavailable
node[2466382]: pthread_create: Resource temporarily unavailable
node[2477980]: pthread_create: Resource temporarily unavailable
node[2478076]: pthread_create: Resource temporarily unavailable
node[2478255]: pthread_create: Resource temporarily unavailable
node[2478570]: pthread_create: Resource temporarily unavailable
node[2478741]: pthread_create: Resource temporarily unavailable
node[2478945]: pthread_create: Resource temporarily unavailable
node[2479032]: pthread_create: Resource temporarily unavailable
node[2552276]: pthread_create: Resource temporarily unavailable
node[2552359]: pthread_create: Resource temporarily unavailable
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-07-03T10:04:51.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de l'archivage/suppression projet : Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at deleteProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:66:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:299:5 {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM project WHERE id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de l'archivage/suppression projet : Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at deleteProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:66:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:299:5 {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM project WHERE id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de l'archivage/suppression projet : Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at deleteProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:66:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:299:5 {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM project WHERE id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de l'archivage/suppression projet : Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at deleteProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:66:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:299:5 {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM project WHERE id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertFrais (/home/boer7121/backend.qualiopact.fr/queries/frais_queries.js:30:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:202:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO frais (\n' +
    '        id, user_id, project_id, date_depense, categorie, montant_ht, montant_ttc,\n' +
    '        type_payement, approved, raison)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        date_depense = VALUES(date_depense),\n' +
    '        categorie = VALUES(categorie),\n' +
    '        montant_ht = VALUES(montant_ht),\n' +
    '        montant_ttc = VALUES(montant_ttc),\n' +
    '        type_payement = VALUES(type_payement),\n' +
    '        approved = VALUES(approved),\n' +
    '        raison = VALUES(raison)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`frais`, CONSTRAINT `frais_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de l'archivage/suppression projet : Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at deleteProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:66:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:299:5 {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM project WHERE id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de l'archivage/suppression projet : Error: Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at deleteProject (/home/boer7121/backend.qualiopact.fr/queries/project_queries.js:66:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:299:5 {
  code: 'ER_ROW_IS_REFERENCED_2',
  errno: 1451,
  sql: 'DELETE FROM project WHERE id = ?',
  sqlState: '23000',
  sqlMessage: 'Cannot delete or update a parent row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Erreur lors de la synchronisation ERP : Error: Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))
    at PromisePoolConnection.execute (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/mysql2/lib/promise/connection.js:47:22)
    at upsertTimesheets (/home/boer7121/backend.qualiopact.fr/queries/timesheet_queries.js:25:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/boer7121/backend.qualiopact.fr/routes.js:219:5 {
  code: 'ER_NO_REFERENCED_ROW_2',
  errno: 1452,
  sql: '\n' +
    '      INSERT INTO timesheets (\n' +
    '        id, user_id, project_id, type, date, temps_reel_alloue)\n' +
    '      VALUES (?, ?, ?, ?, ?, ?)\n' +
    '      ON DUPLICATE KEY UPDATE\n' +
    '        user_id = VALUES(user_id),\n' +
    '        project_id = VALUES(project_id),\n' +
    '        type = VALUES(type),\n' +
    '        date = VALUES(date),\n' +
    '        temps_reel_alloue = VALUES(temps_reel_alloue)',
  sqlState: '23000',
  sqlMessage: 'Cannot add or update a child row: a foreign key constraint fails (`boer7121_qualiopact`.`timesheets`, CONSTRAINT `timesheets_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`))'
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-06-30T13:51:03.000Z
}
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-07-22T10:13:12.000Z
}
Attention: Variables non remplacées dans le template 2fa-code: [ '{{prenom}}' ]
Variables fournies: [ 'userName', 'code' ]
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la récupération des projets incomplets: ReferenceError: getIncompleteProjectsByUser is not defined
    at /home/boer7121/backend.qualiopact.fr/routes.js:3138:23
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at /home/boer7121/backend.qualiopact.fr/auth.js:64:5
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:261:12
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
Erreur lors de la vérification du token JWT : TokenExpiredError: jwt expired
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:190:21
    at getSecret (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:97:14)
    at module.exports [as verify] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/jsonwebtoken/verify.js:101:10)
    at authenticateToken (/home/boer7121/backend.qualiopact.fr/auth.js:19:7)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/layer.js:95:5)
    at /home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:284:15
    at param (/home/boer7121/nodevenv/backend.qualiopact.fr/22/lib/node_modules/express/lib/router/index.js:365:14) {
  expiredAt: 2026-08-18T10:21:49.000Z
}
