2026-09-06 16:06:43.958 [main] INFO Application - Autoreload is disabled because the development mode is off. 2026-09-06 16:06:44.103 [main] INFO Application - Application started in 0.218 seconds. 2026-09-06 16:06:44.162 [DefaultDispatcher-worker-1] INFO Application - Responding at http://0.0.0.0:8070 2026-09-06 16:07:32.286 [eventLoopGroupProxy-4-2] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, start] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:2 -> SUCCESS @ /testcontroller/start /testcontroller/start/(method:GET), segment:2 -> SUCCESS @ /testcontroller/start/(method:GET) /testcontroller/stop, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/stop Matched routes: "" -> "testcontroller" -> "start" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/start/(method:GET) 2026-09-06 16:07:32.297 [eventLoopGroupProxy-4-2] INFO Application - TestServerRunner: port=8063 starting using command: /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/ci-run-test-server.sh (workingDir=/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/002_browse_lessons_test_2026096_167_32) 2026-09-06 16:07:33.292 [eventLoopGroupProxy-4-3] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, start] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:2 -> SUCCESS @ /testcontroller/start /testcontroller/start/(method:GET), segment:2 -> SUCCESS @ /testcontroller/start/(method:GET) /testcontroller/stop, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/stop Matched routes: "" -> "testcontroller" -> "start" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/start/(method:GET) 2026-09-06 16:07:33.292 [eventLoopGroupProxy-4-3] INFO Application - TestServerRunner: port=8064 starting using command: /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/ci-run-test-server.sh (workingDir=/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_001_invite_users_using_qr_code_or_link_test_2026096_167_33) 2026-09-06 16:07:33.388 [eventLoopGroupProxy-4-2] INFO Application - TestServerRunner: port=8063 process started PID=3595466 (saved to /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/002_browse_lessons_test_2026096_167_32/process.pid} 2026-09-06 16:07:34.349 [eventLoopGroupProxy-4-3] INFO Application - TestServerRunner: port=8064 process started PID=3595540 (saved to /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_001_invite_users_using_qr_code_or_link_test_2026096_167_33/process.pid} 2026-09-06 16:07:35.403 [eventLoopGroupProxy-4-2] INFO Application - 200 OK: GET - /testcontroller/start in 3122ms 2026-09-06 16:07:36.351 [eventLoopGroupProxy-4-3] INFO Application - 200 OK: GET - /testcontroller/start in 3059ms 2026-09-06 16:09:43.821 [eventLoopGroupProxy-4-4] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, stop] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/start /testcontroller/stop, segment:2 -> SUCCESS @ /testcontroller/stop /testcontroller/stop/(method:GET), segment:2 -> SUCCESS @ /testcontroller/stop/(method:GET) Matched routes: "" -> "testcontroller" -> "stop" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/stop/(method:GET) 2026-09-06 16:09:43.822 [eventLoopGroupProxy-4-4] INFO Application - TestServerRunner: stopping server on port=8063 2026-09-06 16:09:45.831 [eventLoopGroupProxy-4-4] INFO Application - TestServerRunner: stopping server on port 8063 pid=3595466 2026-09-06 16:09:55.854 [eventLoopGroupProxy-4-4] INFO Application - TestServerController: killed process 3595466 2026-09-06 16:10:00.958 [eventLoopGroupProxy-4-4] INFO Application - TestServerController: killed descendent 3595478 2026-09-06 16:10:03.496 [eventLoopGroupProxy-4-4] INFO Application - TestServerRunner: killed pid #3595478 (/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/002_browse_lessons_test_2026096_167_32/server.pid) 2026-09-06 16:10:03.498 [eventLoopGroupProxy-4-4] INFO Application - 200 OK: GET - /testcontroller/stop in 19677ms 2026-09-06 16:10:46.465 [eventLoopGroupProxy-4-4] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, start] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:2 -> SUCCESS @ /testcontroller/start /testcontroller/start/(method:GET), segment:2 -> SUCCESS @ /testcontroller/start/(method:GET) /testcontroller/stop, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/stop Matched routes: "" -> "testcontroller" -> "start" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/start/(method:GET) 2026-09-06 16:10:46.466 [eventLoopGroupProxy-4-4] INFO Application - TestServerRunner: port=8062 starting using command: /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/ci-run-test-server.sh (workingDir=/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_003_login_using_school_link_test_2026096_1610_46) 2026-09-06 16:10:47.929 [eventLoopGroupProxy-4-4] INFO Application - TestServerRunner: port=8062 process started PID=3595934 (saved to /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_003_login_using_school_link_test_2026096_1610_46/process.pid} 2026-09-06 16:10:49.932 [eventLoopGroupProxy-4-4] INFO Application - 200 OK: GET - /testcontroller/start in 3467ms 2026-09-06 16:12:29.196 [eventLoopGroupProxy-4-5] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, stop] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/start /testcontroller/stop, segment:2 -> SUCCESS @ /testcontroller/stop /testcontroller/stop/(method:GET), segment:2 -> SUCCESS @ /testcontroller/stop/(method:GET) Matched routes: "" -> "testcontroller" -> "stop" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/stop/(method:GET) 2026-09-06 16:12:29.197 [eventLoopGroupProxy-4-5] INFO Application - TestServerRunner: stopping server on port=8062 2026-09-06 16:12:31.204 [eventLoopGroupProxy-4-5] INFO Application - TestServerRunner: stopping server on port 8062 pid=3595934 2026-09-06 16:12:41.215 [eventLoopGroupProxy-4-5] INFO Application - TestServerController: killed process 3595934 2026-09-06 16:12:46.319 [eventLoopGroupProxy-4-5] INFO Application - TestServerController: killed descendent 3595941 2026-09-06 16:12:48.853 [eventLoopGroupProxy-4-5] INFO Application - TestServerRunner: killed pid #3595941 (/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_003_login_using_school_link_test_2026096_1610_46/server.pid) 2026-09-06 16:12:48.853 [eventLoopGroupProxy-4-5] INFO Application - 200 OK: GET - /testcontroller/stop in 19657ms 2026-09-06 16:13:11.414 [eventLoopGroupProxy-4-6] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, stop] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/start /testcontroller/stop, segment:2 -> SUCCESS @ /testcontroller/stop /testcontroller/stop/(method:GET), segment:2 -> SUCCESS @ /testcontroller/stop/(method:GET) Matched routes: "" -> "testcontroller" -> "stop" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/stop/(method:GET) 2026-09-06 16:13:11.414 [eventLoopGroupProxy-4-6] INFO Application - TestServerRunner: stopping server on port=8064 2026-09-06 16:13:13.422 [eventLoopGroupProxy-4-6] INFO Application - TestServerRunner: stopping server on port 8064 pid=3595540 2026-09-06 16:13:23.433 [eventLoopGroupProxy-4-6] INFO Application - TestServerController: killed process 3595540 2026-09-06 16:13:28.537 [eventLoopGroupProxy-4-6] INFO Application - TestServerController: killed descendent 3595566 2026-09-06 16:13:31.066 [eventLoopGroupProxy-4-6] INFO Application - TestServerRunner: killed pid #3595566 (/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_001_invite_users_using_qr_code_or_link_test_2026096_167_33/server.pid) 2026-09-06 16:13:31.066 [eventLoopGroupProxy-4-6] INFO Application - 200 OK: GET - /testcontroller/stop in 19652ms 2026-09-06 16:13:39.557 [eventLoopGroupProxy-4-7] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, start] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:2 -> SUCCESS @ /testcontroller/start /testcontroller/start/(method:GET), segment:2 -> SUCCESS @ /testcontroller/start/(method:GET) /testcontroller/stop, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/stop Matched routes: "" -> "testcontroller" -> "start" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/start/(method:GET) 2026-09-06 16:13:39.558 [eventLoopGroupProxy-4-7] INFO Application - TestServerRunner: port=8061 starting using command: /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/ci-run-test-server.sh (workingDir=/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/003_admin_user_assigns_assignment_to_a_class_test_2026096_1613_39) 2026-09-06 16:13:41.019 [eventLoopGroupProxy-4-7] INFO Application - TestServerRunner: port=8061 process started PID=3596240 (saved to /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/003_admin_user_assigns_assignment_to_a_class_test_2026096_1613_39/process.pid} 2026-09-06 16:13:43.022 [eventLoopGroupProxy-4-7] INFO Application - 200 OK: GET - /testcontroller/start in 3465ms 2026-09-06 16:14:16.366 [eventLoopGroupProxy-4-8] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, start] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:2 -> SUCCESS @ /testcontroller/start /testcontroller/start/(method:GET), segment:2 -> SUCCESS @ /testcontroller/start/(method:GET) /testcontroller/stop, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/stop Matched routes: "" -> "testcontroller" -> "start" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/start/(method:GET) 2026-09-06 16:14:16.366 [eventLoopGroupProxy-4-8] INFO Application - TestServerRunner: port=8060 starting using command: /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/ci-run-test-server.sh (workingDir=/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_002_add_user_direct_test_2026096_1614_16) 2026-09-06 16:14:17.835 [eventLoopGroupProxy-4-8] INFO Application - TestServerRunner: port=8060 process started PID=3596341 (saved to /home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_002_add_user_direct_test_2026096_1614_16/process.pid} 2026-09-06 16:14:19.838 [eventLoopGroupProxy-4-8] INFO Application - 200 OK: GET - /testcontroller/start in 3473ms 2026-09-06 16:24:09.282 [eventLoopGroupProxy-4-9] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, stop] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/start /testcontroller/stop, segment:2 -> SUCCESS @ /testcontroller/stop /testcontroller/stop/(method:GET), segment:2 -> SUCCESS @ /testcontroller/stop/(method:GET) Matched routes: "" -> "testcontroller" -> "stop" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/stop/(method:GET) 2026-09-06 16:24:09.282 [eventLoopGroupProxy-4-9] INFO Application - TestServerRunner: stopping server on port=8060 2026-09-06 16:24:11.307 [eventLoopGroupProxy-4-9] INFO Application - TestServerRunner: stopping server on port 8060 pid=3596341 2026-09-06 16:24:21.317 [eventLoopGroupProxy-4-9] INFO Application - TestServerController: killed process 3596341 2026-09-06 16:24:26.429 [eventLoopGroupProxy-4-9] INFO Application - TestServerController: killed descendent 3596348 2026-09-06 16:24:28.946 [eventLoopGroupProxy-4-9] INFO Application - TestServerRunner: killed pid #3596348 (/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/001_002_add_user_direct_test_2026096_1614_16/server.pid) 2026-09-06 16:24:28.947 [eventLoopGroupProxy-4-9] INFO Application - 200 OK: GET - /testcontroller/stop in 19665ms 2026-09-06 16:24:49.034 [eventLoopGroupProxy-4-10] TRACE io.ktor.server.routing.Routing - Trace for [testcontroller, stop] /, segment:0 -> SUCCESS @ / /, segment:0 -> SUCCESS @ / /(method:GET), segment:0 -> FAILURE "Not all segments matched" @ /(method:GET) /testcontroller, segment:1 -> SUCCESS @ /testcontroller /testcontroller/start, segment:1 -> FAILURE "Selector didn't match" @ /testcontroller/start /testcontroller/stop, segment:2 -> SUCCESS @ /testcontroller/stop /testcontroller/stop/(method:GET), segment:2 -> SUCCESS @ /testcontroller/stop/(method:GET) Matched routes: "" -> "testcontroller" -> "stop" -> "(method:GET)" Routing resolve result: SUCCESS @ /testcontroller/stop/(method:GET) 2026-09-06 16:24:49.035 [eventLoopGroupProxy-4-10] INFO Application - TestServerRunner: stopping server on port=8061 2026-09-06 16:24:51.041 [eventLoopGroupProxy-4-10] INFO Application - TestServerRunner: stopping server on port 8061 pid=3596240 2026-09-06 16:25:01.049 [eventLoopGroupProxy-4-10] INFO Application - TestServerController: killed process 3596240 2026-09-06 16:25:06.154 [eventLoopGroupProxy-4-10] INFO Application - TestServerController: killed descendent 3596247 2026-09-06 16:25:08.664 [eventLoopGroupProxy-4-10] INFO Application - TestServerRunner: killed pid #3596247 (/home/jenkins/.jenkins/workspace/fix-assignment-error-handling-end-to-end/build/ci-e2e/workspace/003_admin_user_assigns_assignment_to_a_class_test_2026096_1613_39/server.pid) 2026-09-06 16:25:08.665 [eventLoopGroupProxy-4-10] INFO Application - 200 OK: GET - /testcontroller/stop in 19631ms 2026-09-06 16:26:50.402 [eventLoopGroupProxy-3-9] WARN i.n.u.c.AbstractEventExecutor - A task raised an exception. Task: io.netty.channel.AbstractChannel$AbstractUnsafe$8@50ca52e9 java.util.concurrent.RejectedExecutionException: event executor terminated at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:1005) at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:388) at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:381) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:907) at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:873) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:863) at io.netty.channel.DefaultChannelPipeline.destroyUp(DefaultChannelPipeline.java:816) at io.netty.channel.DefaultChannelPipeline.destroy(DefaultChannelPipeline.java:801) at io.netty.channel.DefaultChannelPipeline.access$700(DefaultChannelPipeline.java:45) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelUnregistered(DefaultChannelPipeline.java:1411) at io.netty.channel.DefaultChannelPipeline.fireChannelUnregistered(DefaultChannelPipeline.java:780) at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:692) at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:141) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507) at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:183) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) 2026-09-06 16:26:50.402 [eventLoopGroupProxy-3-1] WARN i.n.u.c.AbstractEventExecutor - A task raised an exception. Task: io.netty.channel.AbstractChannel$AbstractUnsafe$8@2fd997e7 java.util.concurrent.RejectedExecutionException: event executor terminated at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:1005) at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:388) at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:381) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:907) at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:873) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:863) at io.netty.channel.DefaultChannelPipeline.destroyUp(DefaultChannelPipeline.java:816) at io.netty.channel.DefaultChannelPipeline.destroy(DefaultChannelPipeline.java:801) at io.netty.channel.DefaultChannelPipeline.access$700(DefaultChannelPipeline.java:45) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelUnregistered(DefaultChannelPipeline.java:1411) at io.netty.channel.DefaultChannelPipeline.fireChannelUnregistered(DefaultChannelPipeline.java:780) at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:692) at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:141) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507) at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:183) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) 2026-09-06 16:26:51.406 [KtorShutdownHook] INFO Application - Server is stopped