Skip to content

Update lecture template question UX - #402

Merged
MigrainePanda merged 3 commits into
developmentfrom
question_ux
May 15, 2026
Merged

MigrainePanda merged 3 commits into
developmentfrom
question_ux

Conversation

@MigrainePanda

Copy link
Copy Markdown
Contributor

Pull Request

Description

Adds question refresh to show newly added questions on lecture template
Fixes question not showing up in lecture when adding via lecture template
Fixes navigation on question adding from lecture template

Additional Information

Checklist:

Before you submit your Pull Request, please make sure you have completed the following tasks:

  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • Any dependent changes have been merged and published in downstream modules.
  • I have tagged my PR with the appropriate label(s).

@MigrainePanda MigrainePanda self-assigned this May 13, 2026
@MigrainePanda
MigrainePanda requested review from a team as code owners May 13, 2026 06:24
@MigrainePanda MigrainePanda added bug Something isn't working development Updates and modifications to development/deployment tools labels May 13, 2026

@LaserBread LaserBread left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps my environment is bugged, but when creating a question, I get an error saying "something went wrong," even though the question was successfully created.

@github-project-automation github-project-automation Bot moved this from Backlog to In Progress in classroom-polling May 13, 2026
@LaserBread

Copy link
Copy Markdown
Contributor
image

@MigrainePanda

Copy link
Copy Markdown
Contributor Author

@LaserBread What do the backend logs and browser console say?

@LaserBread

Copy link
Copy Markdown
Contributor

It does work locally, but I do want to make sure it works in the docker container because that is how the project was initially drafted and presumably how they want it deployed.

@LaserBread

LaserBread commented May 14, 2026 •

Copy link
Copy Markdown
Contributor

This error also seems to happen when trying to login. Here are the logs from the backend, which is producing the error:

openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Checking if MySQL is ready before proceeding...
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Trying to connect to MySQL at db:3306...
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | nc: getaddrinfo for host "db" port 3306: Name or service not known
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Waiting for MySQL (db:3306) to be ready...
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | nc: getaddrinfo for host "db" port 3306: Name or service not known
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Waiting for MySQL (db:3306) to be ready...
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | nc: getaddrinfo for host "db" port 3306: Name or service not known
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Waiting for MySQL (db:3306) to be ready...
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Enter password: ERROR 1045 (28000): Access denied for user 'dev_admin'@'10.0.1.4' (using password: NO)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Database not initialized. Running migrations and seeders...
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | ./entrypoint.sh: 26: [: Illegal number: 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Sequelize CLI [Node: 21.7.3, CLI: 6.6.5, ORM: 6.37.8]
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Loaded configuration file "config/db.config.js".
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Using environment "test".
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | No migrations were executed, database schema was already up to date.
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Sequelize CLI [Node: 21.7.3, CLI: 6.6.5, ORM: 6.37.8]
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Loaded configuration file "config/db.config.js".
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Using environment "development".
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | No migrations were executed, database schema was already up to date.
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Sequelize CLI [Node: 21.7.3, CLI: 6.6.5, ORM: 6.37.8]
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Loaded configuration file "config/db.config.js".
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Using environment "test".
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | == 20221223225047-create-root-user: migrating =======
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | ERROR: Validation error
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Database migrations and seeding completed.
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | > @open-response/core@0.1.0 start
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | > npm run start:dev
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | > @open-response/core@0.1.0 start:dev
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | > nodemon app/core.js --NODE_ENV=development
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | 
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [nodemon] 3.1.14
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [nodemon] to restart at any time, enter `rs`
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [nodemon] watching path(s): *.*
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [nodemon] watching extensions: js,mjs,cjs,json
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [nodemon] starting `node app/core.js --NODE_ENV=development`
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:34:41.071 AM] INFO:    Executing (default): SELECT 1+1 AS result
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:34:41.073 AM] INFO:    Core is listening on port: 3001
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:08.698 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:08.702 AM] HTTP:    GET /users/authenticate 401 40 - 5.017 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.406 AM] HTTP:    OPTIONS /users/login 200 0 - 0.547 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.430 AM] INFO:    Executing (default): SELECT `id`, `firstName`, `lastName`, `email`, `password`, `isTeacher`, `admin`, `failedLoginAttempts`, `lastLogin`, `emailConfirmed`, `emailConfirmationCode`, `emailConfirmationExpiresAt`, `passwordResetCode`, `passwordResetExpiresAt`, `passwordResetInitiated`, `softDelete`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'teacher@oregonstate.edu';
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.452 AM] INFO:    Executing (default): UPDATE `Users` SET `lastLogin`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.457 AM] INFO:    Executing (default): SELECT `id` FROM `Sessions` AS `Session` WHERE `Session`.`userId` = 6 ORDER BY `Session`.`createdAt` DESC LIMIT 1;
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.461 AM] INFO:    Executing (default): UPDATE `Sessions` SET `expires`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.466 AM] INFO:    Executing (default): INSERT INTO `Sessions` (`id`,`userId`,`expires`,`csrfToken`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?,?,?,?);
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.470 AM] ERROR:   secretOrPrivateKey must have a value
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Error: secretOrPrivateKey must have a value
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as sign] (/app/node_modules/jsonwebtoken/sign.js:111:20)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.encode (/app/lib/jwt_utils.js:4:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at generateUserAuthToken (/app/lib/auth.js:18:19)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at setUserAuthCookie (/app/lib/auth.js:32:40)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at async /app/app/api/users.js:341:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:12.471 AM] HTTP:    POST /users/login 500 80 - 45.924 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:14.880 AM] INFO:    Executing (default): SELECT `id`, `firstName`, `lastName`, `email`, `password`, `isTeacher`, `admin`, `failedLoginAttempts`, `lastLogin`, `emailConfirmed`, `emailConfirmationCode`, `emailConfirmationExpiresAt`, `passwordResetCode`, `passwordResetExpiresAt`, `passwordResetInitiated`, `softDelete`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'teacher@oregonstate.edu';
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:14.895 AM] INFO:    Executing (default): UPDATE `Users` SET `failedLoginAttempts`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:14.907 AM] HTTP:    POST /users/login 401 94 - 27.513 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.158 AM] HTTP:    OPTIONS /users/login 200 0 - 0.212 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.161 AM] INFO:    Executing (default): SELECT `id`, `firstName`, `lastName`, `email`, `password`, `isTeacher`, `admin`, `failedLoginAttempts`, `lastLogin`, `emailConfirmed`, `emailConfirmationCode`, `emailConfirmationExpiresAt`, `passwordResetCode`, `passwordResetExpiresAt`, `passwordResetInitiated`, `softDelete`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'teacher@oregonstate.edu';
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.176 AM] INFO:    Executing (default): UPDATE `Users` SET `failedLoginAttempts`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.190 AM] INFO:    Executing (default): SELECT `id` FROM `Sessions` AS `Session` WHERE `Session`.`userId` = 6 ORDER BY `Session`.`createdAt` DESC LIMIT 1;
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.191 AM] INFO:    Executing (default): UPDATE `Sessions` SET `expires`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.194 AM] INFO:    Executing (default): INSERT INTO `Sessions` (`id`,`userId`,`expires`,`csrfToken`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?,?,?,?);
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.197 AM] ERROR:   secretOrPrivateKey must have a value
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Error: secretOrPrivateKey must have a value
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as sign] (/app/node_modules/jsonwebtoken/sign.js:111:20)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.encode (/app/lib/jwt_utils.js:4:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at generateUserAuthToken (/app/lib/auth.js:18:19)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at setUserAuthCookie (/app/lib/auth.js:32:40)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at async /app/app/api/users.js:341:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:23.197 AM] HTTP:    POST /users/login 500 80 - 37.111 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:26.766 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:26.766 AM] HTTP:    GET /users/authenticate 401 40 - 0.734 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:27.651 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:27.652 AM] HTTP:    GET /users/authenticate 401 40 - 0.555 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:28.331 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:28.332 AM] HTTP:    GET /users/authenticate 401 40 - 0.632 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:28.785 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:28.785 AM] HTTP:    GET /users/authenticate 401 40 - 0.627 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:29.224 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:29.225 AM] HTTP:    GET /users/authenticate 401 40 - 0.803 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:29.655 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:29.656 AM] HTTP:    GET /users/authenticate 401 40 - 0.714 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:30.112 AM] ERROR:   secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | JsonWebTokenError: secret or public key must be provided
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/jsonwebtoken/verify.js:113:19
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at getSecret (/app/node_modules/jsonwebtoken/verify.js:97:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as verify] (/app/node_modules/jsonwebtoken/verify.js:101:10)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.decode (/app/lib/jwt_utils.js:10:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at requireAuthentication (/app/lib/auth.js:77:30)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at next (/app/node_modules/express/lib/router/route.js:149:13)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at /app/node_modules/express/lib/router/index.js:284:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:35:30.113 AM] HTTP:    GET /users/authenticate 401 40 - 0.689 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.760 AM] HTTP:    OPTIONS /users/login 200 0 - 0.152 ms
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.766 AM] INFO:    Executing (default): SELECT `id`, `firstName`, `lastName`, `email`, `password`, `isTeacher`, `admin`, `failedLoginAttempts`, `lastLogin`, `emailConfirmed`, `emailConfirmationCode`, `emailConfirmationExpiresAt`, `passwordResetCode`, `passwordResetExpiresAt`, `passwordResetInitiated`, `softDelete`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'teacheruser@open-response.org';
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.780 AM] INFO:    Executing (default): UPDATE `Users` SET `lastLogin`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.795 AM] INFO:    Executing (default): SELECT `id` FROM `Sessions` AS `Session` WHERE `Session`.`userId` = 2 ORDER BY `Session`.`createdAt` DESC LIMIT 1;
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.797 AM] INFO:    Executing (default): UPDATE `Sessions` SET `expires`=?,`updatedAt`=? WHERE `id` = ?
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.800 AM] INFO:    Executing (default): INSERT INTO `Sessions` (`id`,`userId`,`expires`,`csrfToken`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?,?,?,?);
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.803 AM] ERROR:   secretOrPrivateKey must have a value
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | Error: secretOrPrivateKey must have a value
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at module.exports [as sign] (/app/node_modules/jsonwebtoken/sign.js:111:20)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at Object.encode (/app/lib/jwt_utils.js:4:14)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at generateUserAuthToken (/app/lib/auth.js:18:19)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at setUserAuthCookie (/app/lib/auth.js:32:40)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    |     at async /app/app/api/users.js:341:15
openresponse_backend.1.ni2ivl4jbzsc@Shlambak    | [2026-05-14 05:37:21.803 AM] HTTP:    POST /users/login 500 80 - 40.644 ms

Again, my docker config may just be busted, so it wouldn't hurt to test it on your end.

@LaserBread LaserBread left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good

@MigrainePanda

Copy link
Copy Markdown
Contributor Author

I didn't get those errors using the docker setup, might be a missing variable in your .env file bc of
JsonWebTokenError: secret or public key must be provided

@MigrainePanda
MigrainePanda added this pull request to the merge queue May 15, 2026
Merged via the queue into development with commit 8f2861a May 15, 2026
8 checks passed
@MigrainePanda
MigrainePanda deleted the question_ux branch May 15, 2026 00:07
@github-project-automation github-project-automation Bot moved this from In Progress to Done in classroom-polling May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working development Updates and modifications to development/deployment tools

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants