Skip to content
Failed

Console Output

This log is too long to show here, 3,936 KB has been skipped — click to see the complete log
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_125_coursePictureUri_upd_t
                            AFTER UPDATE ON CoursePicture
                            FOR EACH ROW
                            WHEN (NEW.coursePictureUri IS DISTINCT FROM OLD.coursePictureUri AND OLD.coursePictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_125_coursePictureUri();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_125_coursePictureUri_upd_t
                            AFTER UPDATE ON CoursePicture
                            FOR EACH ROW
                            WHEN (NEW.coursePictureUri IS DISTINCT FROM OLD.coursePictureUri AND NEW.coursePictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_125_coursePictureUri();
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_c_clj_125_coursePictureThumbnailUr() RETURNS TRIGGER AS $$
                            BEGIN
                            INSERT INTO CacheLockJoin(cljTableId, cljEntityUid, cljUrl, cljLockId, cljStatus, cljType)
                            VALUES(125, NEW.coursePictureUid, NEW.coursePictureThumbnailUri, 0, 1, 1);
                            RETURN NEW;
                            END $$ LANGUAGE plpgsql
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_d_clj_125_coursePictureThumbnailUr() RETURNS TRIGGER AS $$
                            BEGIN
                            UPDATE CacheLockJoin 
                               SET cljStatus = 3
                             WHERE cljTableId = 125
                               AND cljEntityUid = OLD.coursePictureUid
                               AND cljUrl = OLD.coursePictureThumbnailUri;
                            RETURN OLD;
                            END $$ LANGUAGE plpgsql   
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_125_coursePictureThumbnailUr_ins_t
                            AFTER INSERT ON CoursePicture
                            FOR EACH ROW
                            WHEN (NEW.coursePictureThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_125_coursePictureThumbnailUr();
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_125_coursePictureThumbnailUr_upd_t
                            AFTER UPDATE ON CoursePicture
                            FOR EACH ROW
                            WHEN (NEW.coursePictureThumbnailUri IS DISTINCT FROM OLD.coursePictureThumbnailUri AND OLD.coursePictureThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_125_coursePictureThumbnailUr();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_125_coursePictureThumbnailUr_upd_t
                            AFTER UPDATE ON CoursePicture
                            FOR EACH ROW
                            WHEN (NEW.coursePictureThumbnailUri IS DISTINCT FROM OLD.coursePictureThumbnailUri AND NEW.coursePictureThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_125_coursePictureThumbnailUr();
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_c_clj_90_casaUri() RETURNS TRIGGER AS $$
                            BEGIN
                            INSERT INTO CacheLockJoin(cljTableId, cljEntityUid, cljUrl, cljLockId, cljStatus, cljType)
                            VALUES(90, NEW.casaUid, NEW.casaUri, 0, 1, 1);
                            RETURN NEW;
                            END $$ LANGUAGE plpgsql
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_d_clj_90_casaUri() RETURNS TRIGGER AS $$
                            BEGIN
                            UPDATE CacheLockJoin 
                               SET cljStatus = 3
                             WHERE cljTableId = 90
                               AND cljEntityUid = OLD.casaUid
                               AND cljUrl = OLD.casaUri;
                            RETURN OLD;
                            END $$ LANGUAGE plpgsql   
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_90_casaUri_ins_t
                            AFTER INSERT ON CourseAssignmentSubmissionFile
                            FOR EACH ROW
                            WHEN (NEW.casaUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_90_casaUri();
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_90_casaUri_upd_t
                            AFTER UPDATE ON CourseAssignmentSubmissionFile
                            FOR EACH ROW
                            WHEN (NEW.casaUri IS DISTINCT FROM OLD.casaUri AND OLD.casaUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_90_casaUri();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_90_casaUri_upd_t
                            AFTER UPDATE ON CourseAssignmentSubmissionFile
                            FOR EACH ROW
                            WHEN (NEW.casaUri IS DISTINCT FROM OLD.casaUri AND NEW.casaUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_90_casaUri();
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_c_clj_6677_cbpPictureUri() RETURNS TRIGGER AS $$
                            BEGIN
                            INSERT INTO CacheLockJoin(cljTableId, cljEntityUid, cljUrl, cljLockId, cljStatus, cljType)
                            VALUES(6677, NEW.cbpUid, NEW.cbpPictureUri, 0, 1, 1);
                            RETURN NEW;
                            END $$ LANGUAGE plpgsql
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_d_clj_6677_cbpPictureUri() RETURNS TRIGGER AS $$
                            BEGIN
                            UPDATE CacheLockJoin 
                               SET cljStatus = 3
                             WHERE cljTableId = 6677
                               AND cljEntityUid = OLD.cbpUid
                               AND cljUrl = OLD.cbpPictureUri;
                            RETURN OLD;
                            END $$ LANGUAGE plpgsql   
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6677_cbpPictureUri_ins_t
                            AFTER INSERT ON CourseBlockPicture
                            FOR EACH ROW
                            WHEN (NEW.cbpPictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6677_cbpPictureUri();
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6677_cbpPictureUri_upd_t
                            AFTER UPDATE ON CourseBlockPicture
                            FOR EACH ROW
                            WHEN (NEW.cbpPictureUri IS DISTINCT FROM OLD.cbpPictureUri AND OLD.cbpPictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6677_cbpPictureUri();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_6677_cbpPictureUri_upd_t
                            AFTER UPDATE ON CourseBlockPicture
                            FOR EACH ROW
                            WHEN (NEW.cbpPictureUri IS DISTINCT FROM OLD.cbpPictureUri AND NEW.cbpPictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_6677_cbpPictureUri();
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_c_clj_6677_cbpThumbnailUri() RETURNS TRIGGER AS $$
                            BEGIN
                            INSERT INTO CacheLockJoin(cljTableId, cljEntityUid, cljUrl, cljLockId, cljStatus, cljType)
                            VALUES(6677, NEW.cbpUid, NEW.cbpThumbnailUri, 0, 1, 1);
                            RETURN NEW;
                            END $$ LANGUAGE plpgsql
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_d_clj_6677_cbpThumbnailUri() RETURNS TRIGGER AS $$
                            BEGIN
                            UPDATE CacheLockJoin 
                               SET cljStatus = 3
                             WHERE cljTableId = 6677
                               AND cljEntityUid = OLD.cbpUid
                               AND cljUrl = OLD.cbpThumbnailUri;
                            RETURN OLD;
                            END $$ LANGUAGE plpgsql   
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6677_cbpThumbnailUri_ins_t
                            AFTER INSERT ON CourseBlockPicture
                            FOR EACH ROW
                            WHEN (NEW.cbpThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6677_cbpThumbnailUri();
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6677_cbpThumbnailUri_upd_t
                            AFTER UPDATE ON CourseBlockPicture
                            FOR EACH ROW
                            WHEN (NEW.cbpThumbnailUri IS DISTINCT FROM OLD.cbpThumbnailUri AND OLD.cbpThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6677_cbpThumbnailUri();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_6677_cbpThumbnailUri_upd_t
                            AFTER UPDATE ON CourseBlockPicture
                            FOR EACH ROW
                            WHEN (NEW.cbpThumbnailUri IS DISTINCT FROM OLD.cbpThumbnailUri AND NEW.cbpThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_6677_cbpThumbnailUri();
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_c_clj_6678_cepPictureUri() RETURNS TRIGGER AS $$
                            BEGIN
                            INSERT INTO CacheLockJoin(cljTableId, cljEntityUid, cljUrl, cljLockId, cljStatus, cljType)
                            VALUES(6678, NEW.cepUid, NEW.cepPictureUri, 0, 1, 1);
                            RETURN NEW;
                            END $$ LANGUAGE plpgsql
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_d_clj_6678_cepPictureUri() RETURNS TRIGGER AS $$
                            BEGIN
                            UPDATE CacheLockJoin 
                               SET cljStatus = 3
                             WHERE cljTableId = 6678
                               AND cljEntityUid = OLD.cepUid
                               AND cljUrl = OLD.cepPictureUri;
                            RETURN OLD;
                            END $$ LANGUAGE plpgsql   
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6678_cepPictureUri_ins_t
                            AFTER INSERT ON ContentEntryPicture2
                            FOR EACH ROW
                            WHEN (NEW.cepPictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6678_cepPictureUri();
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6678_cepPictureUri_upd_t
                            AFTER UPDATE ON ContentEntryPicture2
                            FOR EACH ROW
                            WHEN (NEW.cepPictureUri IS DISTINCT FROM OLD.cepPictureUri AND OLD.cepPictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6678_cepPictureUri();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_6678_cepPictureUri_upd_t
                            AFTER UPDATE ON ContentEntryPicture2
                            FOR EACH ROW
                            WHEN (NEW.cepPictureUri IS DISTINCT FROM OLD.cepPictureUri AND NEW.cepPictureUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_6678_cepPictureUri();
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_c_clj_6678_cepThumbnailUri() RETURNS TRIGGER AS $$
                            BEGIN
                            INSERT INTO CacheLockJoin(cljTableId, cljEntityUid, cljUrl, cljLockId, cljStatus, cljType)
                            VALUES(6678, NEW.cepUid, NEW.cepThumbnailUri, 0, 1, 1);
                            RETURN NEW;
                            END $$ LANGUAGE plpgsql
                        """)

add("""
                            CREATE OR REPLACE FUNCTION retain_d_clj_6678_cepThumbnailUri() RETURNS TRIGGER AS $$
                            BEGIN
                            UPDATE CacheLockJoin 
                               SET cljStatus = 3
                             WHERE cljTableId = 6678
                               AND cljEntityUid = OLD.cepUid
                               AND cljUrl = OLD.cepThumbnailUri;
                            RETURN OLD;
                            END $$ LANGUAGE plpgsql   
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6678_cepThumbnailUri_ins_t
                            AFTER INSERT ON ContentEntryPicture2
                            FOR EACH ROW
                            WHEN (NEW.cepThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6678_cepThumbnailUri();
                        """)

add("""
                            CREATE TRIGGER retain_c_clj_6678_cepThumbnailUri_upd_t
                            AFTER UPDATE ON ContentEntryPicture2
                            FOR EACH ROW
                            WHEN (NEW.cepThumbnailUri IS DISTINCT FROM OLD.cepThumbnailUri AND OLD.cepThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_c_clj_6678_cepThumbnailUri();
                        """)

add("""
                            CREATE TRIGGER retain_d_clj_6678_cepThumbnailUri_upd_t
                            AFTER UPDATE ON ContentEntryPicture2
                            FOR EACH ROW
                            WHEN (NEW.cepThumbnailUri IS DISTINCT FROM OLD.cepThumbnailUri AND NEW.cepThumbnailUri IS NOT NULL)
                            EXECUTE FUNCTION retain_d_clj_6678_cepThumbnailUri();
                        """)

[00007b12e701ab00] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[00007b12e701ab00] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[00007b12e7012980] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[00007b12e7012980] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
com.ustadmobile.core.domain.interop.HttpApiException: State content too large: 262145 exceeds limit of 262144
	at com.ustadmobile.core.domain.xapi.state.StoreXapiStateUseCase.invoke(StoreXapiStateUseCase.kt:131)
	at com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest$givenTextBodyTooLarge_whenStored_thenShouldThrowException$1.invokeSuspend(XapiStateUseCaseIntegrationTest.kt:289)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest.givenTextBodyTooLarge_whenStored_thenShouldThrowException(XapiStateUseCaseIntegrationTest.kt:280)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:112)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:54)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53)
	at jdk.internal.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestClass(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:183)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Delaying...
process.waitForAsync
canceling result
Canceled
Exception in thread "UI Thread @coroutine#2556" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(2556), "coroutine#2556":StandaloneCoroutine{Cancelling}@11136ed0, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#2573" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(2573), "coroutine#2573":StandaloneCoroutine{Cancelling}@33147373, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#2590" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(2590), "coroutine#2590":StandaloneCoroutine{Cancelling}@1234c3d7, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#2617" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(2617), "coroutine#2617":StandaloneCoroutine{Cancelling}@78fc7db3, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#2653" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:230)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(2653), "coroutine#2653":StandaloneCoroutine{Cancelling}@e0359b7, Dispatchers.Main]

Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findCourseCommentsByAssignmentUid$1@38428b65
Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findCourseCommentsByAssignmentUid$1@735e7906
Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findCourseCommentsByAssignmentUid$1@6849a3a7
Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findPrivateCommentsForUserByAssignmentUid$1@6ad76a9f
Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findPrivateCommentsForUserByAssignmentUid$1@24bbc9d5
Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findPrivateCommentsForUserByAssignmentUid$1@2c46f714
Invalidated PagingSource com.ustadmobile.core.db.dao.CommentsDao_JdbcImpl$findPrivateCommentsForUserByAssignmentUid$1@42e840c9Exception in thread "UI Thread @coroutine#4356" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(4356), "coroutine#4356":StandaloneCoroutine{Cancelling}@33af37a7, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#4386" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(4386), "coroutine#4386":StandaloneCoroutine{Cancelling}@47d56202, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#4419" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(4419), "coroutine#4419":StandaloneCoroutine{Cancelling}@27dd9d95, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#4480" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(4480), "coroutine#4480":StandaloneCoroutine{Cancelling}@53f7594b, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#5125" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(5125), "coroutine#5125":StandaloneCoroutine{Cancelling}@362bb5d6, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#5145" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(5145), "coroutine#5145":StandaloneCoroutine{Cancelling}@4ad4149f, Dispatchers.Main]
> Task :core:jvmTest

Exception in thread "UI Thread @coroutine#5509" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(5509), "coroutine#5509":StandaloneCoroutine{Cancelling}@2f19a908, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#5527" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(5527), "coroutine#5527":StandaloneCoroutine{Cancelling}@9e96596, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#5545" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:230)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(5545), "coroutine#5545":StandaloneCoroutine{Cancelling}@48e70731, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#5962" java.sql.SQLException: Connection is closed
	at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection$1.invoke(ProxyConnection.java:467)
	at jdk.proxy4/jdk.proxy4.$Proxy74.prepareStatement(Unknown Source)
	at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:308)
	at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
	at com.ustadmobile.door.room.InvalidationTracker.findChangedTablesOnConnectionAsync(InvalidationTracker.kt:95)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:140)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:266)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(5962), "coroutine#5962":StandaloneCoroutine{Cancelling}@6abce759, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6075" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6075), "coroutine#6075":StandaloneCoroutine{Cancelling}@1b499364, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6102" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6102), "coroutine#6102":StandaloneCoroutine{Cancelling}@69dd4220, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6124" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6124), "coroutine#6124":StandaloneCoroutine{Cancelling}@928add6, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6163" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:230)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6163), "coroutine#6163":StandaloneCoroutine{Cancelling}@1c7095df, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6181" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6181), "coroutine#6181":StandaloneCoroutine{Cancelling}@47fc58c, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6197" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:230)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6197), "coroutine#6197":StandaloneCoroutine{Cancelling}@67ebbd08, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6216" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:230)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6216), "coroutine#6216":StandaloneCoroutine{Cancelling}@650100ba, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6234" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6234), "coroutine#6234":StandaloneCoroutine{Cancelling}@1ecadd54, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6253" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6253), "coroutine#6253":StandaloneCoroutine{Cancelling}@72795856, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6271" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6271), "coroutine#6271":StandaloneCoroutine{Cancelling}@454c4dc9, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6292" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6292), "coroutine#6292":StandaloneCoroutine{Cancelling}@4a93758b, Dispatchers.Main]
Exception in thread "UI Thread @coroutine#6312" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.setAutoCommit(boolean)" because "connection" is null
	at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)
	at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)
	at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:197)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.access$useNewConnectionAsyncInternal(RoomDatabaseJdbcImplHelperCommon.kt:21)
	at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon$useNewConnectionAsyncInternal$1.invokeSuspend(RoomDatabaseJdbcImplHelperCommon.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(6312), "coroutine#6312":StandaloneCoroutine{Cancelling}@6471b766, Dispatchers.Main]

> Task :core:allTests
> Task :core:check
> Task :core:build
[Incubating] Problems report is available at: file:///home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.11.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 7m 2s
1926 actionable tasks: 1750 executed, 176 up-to-date
Build step 'Invoke Gradle script' changed build result to SUCCESS
[Primary-End-To-End-Tests] $ /bin/sh -xe /tmp/jenkins8760446497484834127.sh
+ npm --prefix test-end-to-end/webapp-cypress/ install

up to date, audited 262 packages in 651ms

56 packages are looking for funding
  run `npm fund` for details

1 low severity vulnerability

To address all issues, run:
  npm audit fix

Run `npm audit` for details.
+ npm --prefix test-end-to-end/webapp-cypress/ run delete:reports

> webapp-cypress@1.0.0 delete:reports
> rm results/* cypress/videos/*  cypress/screenshots/* logs/* log/* || true

rm: cannot remove 'results/*': No such file or directory
rm: cannot remove 'cypress/videos/*': No such file or directory
rm: cannot remove 'cypress/screenshots/*': No such file or directory
rm: cannot remove 'logs/*': No such file or directory
+ npm --prefix test-end-to-end/webapp-cypress/ run test-ci

> webapp-cypress@1.0.0 test-ci
> start-server-and-test start-server-ci $TESTCONTROLLER_URL cy:run-ci

1: starting server using command "npm run start-server-ci"
and when url "[ 'http://37.27.227.212:8071/' ]" is responding with HTTP status code 200
running tests using command "npm run cy:run-ci"


> webapp-cypress@1.0.0 start-server-ci
> java -jar ../../testserver-controller/build/libs/testserver-controller-all.jar -P:url=$TESTCONTROLLER_URL -P:srcRoot=../../ -P:mode=cypress


> webapp-cypress@1.0.0 cy:run-ci
> cypress run --config baseUrl=$TESTCONTROLLER_URL


DevTools listening on ws://127.0.0.1:46581/devtools/browser/e29d375a-5935-4856-9ada-ff15d7c2301e
The experimentalSessionAndOrigin configuration option was removed in Cypress version 12.0.0.

You can safely remove this option from your config.

https://on.cypress.io/session
https://on.cypress.io/origin

resize:  can't open terminal /dev/tty
tput: No value for $TERM and no -T specified
====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        14.0.3                                                                         │
  │ Browser:        Electron 130 (headless)                                                        │
  │ Node Version:   v18.20.5 (/home/jenkins/.nvm/versions/node/v18.20.5/bin/node)                  │
  │ Specs:          30 found (WEB_001_001_add_content.cy.js, WEB_001_002_add_invalid_content.cy.js │
  │                 , WEB_001_003_move_content.cy.js, WEB_002_001_admin_add_new_course_and_teacher │
  │                 .cy.js, WEB_002_003_teacher_record_attendance.cy.js, WEB_003_001_add_or_edit_c │
  │                 ourse_permission_test.c...)                                                    │
  │ Searched:       cypress/e2e/**/*.cy.{js,jsx,ts,tsx}                                            │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_001_001_add_content.cy.js                                                  (1 of 30)
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=52181 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:55:11,944 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:55:11,944 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - No custom configurators were discovered as a service.
13:55:11,944 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:55:11,944 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:55:11,947 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:55:11,948 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:55:11,951 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 4 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:55:11,951 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:55:11,951 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:55:11,952 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:55:11,953 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:55:11,955 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@3cc1435c - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:55:11,993 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:55:11,993 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:55:12,005 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1810899357 - No compression will be used
13:55:12,005 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1810899357 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:55:12,014 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:55:12,014 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - Roll-over at midnight.
13:55:12,017 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - Setting initial period to 2025-06-17T11:55:11.799Z
13:55:12,017 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:55:12,017 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:55:12,019 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:55:12,023 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181/log/ustad-server.log
13:55:12,023 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181/log/ustad-server.log]
13:55:12,024 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:55:12,024 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:55:12,024 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:55:12,024 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:55:12,024 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@5f16132a - End of configuration.
13:55:12,025 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@69fb6037 - Registering current configuration as safe fallback point
13:55:12,025 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 74 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-52181
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


[1176428:0617/135525.923860:ERROR:ffmpeg_common.cc(970)] Unsupported pixel format: -1
[1177312:0617/135525.976812:ERROR:alsa_util.cc(204)] PcmOpen: default,Host is down
[1177312:0617/135525.978527:ERROR:alsa_util.cc(204)] PcmOpen: plug:default,Host is down
cypress-terminal-report: Wrote custom logs to cypress-logs. (3ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (2ms)

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        1                                                                                │
  │ Passing:      1                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     37 seconds                                                                       │
  │ Spec Ran:     WEB_001_001_add_content.cy.js                                                    │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Video)

  -  Video output: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/cypress/videos/WEB_001_001_add_content.cy.js.mp4


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_001_002_add_invalid_content.cy.js                                          (2 of 30)
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: stopping server on port: 52181
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=6098 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:55:53,233 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:55:53,234 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - No custom configurators were discovered as a service.
13:55:53,234 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:55:53,234 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:55:53,237 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:55:53,237 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:55:53,241 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:55:53,241 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:55:53,241 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:55:53,241 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:55:53,243 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:55:53,244 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@71c3b41 - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:55:53,282 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:55:53,282 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:55:53,294 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - No compression will be used
13:55:53,294 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:55:53,304 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:55:53,304 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Roll-over at midnight.
13:55:53,307 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Setting initial period to 2025-06-17T11:55:53.092Z
13:55:53,307 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:55:53,307 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:55:53,308 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:55:53,313 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098/log/ustad-server.log
13:55:53,313 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098/log/ustad-server.log]
13:55:53,314 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:55:53,314 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:55:53,314 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:55:53,314 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:55:53,314 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@6bf0219d - End of configuration.
13:55:53,314 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@dd0c991 - Registering current configuration as safe fallback point
13:55:53,315 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 73 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-6098
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


cypress-terminal-report: Wrote custom logs to cypress-logs. (3ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (2ms)

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        1                                                                                │
  │ Passing:      1                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     7 seconds                                                                        │
  │ Spec Ran:     WEB_001_002_add_invalid_content.cy.js                                            │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Video)

  -  Video output: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/cypress/videos/WEB_001_002_add_invalid_content.cy.js.mp4


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_001_003_move_content.cy.js                                                 (3 of 30)
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: stopping server on port: 6098
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=18540 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:56:02,648 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:56:02,648 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - No custom configurators were discovered as a service.
13:56:02,648 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:56:02,649 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:56:02,652 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:56:02,652 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:56:02,657 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 4 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:56:02,657 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:56:02,657 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:56:02,657 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:56:02,659 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:56:02,660 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@3cc1435c - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:56:02,699 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:56:02,700 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:56:02,712 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1810899357 - No compression will be used
13:56:02,712 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1810899357 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:56:02,722 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:56:02,722 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - Roll-over at midnight.
13:56:02,725 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - Setting initial period to 2025-06-17T11:56:02.492Z
13:56:02,725 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:56:02,725 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:56:02,726 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:56:02,731 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540/log/ustad-server.log
13:56:02,731 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540/log/ustad-server.log]
13:56:02,731 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:56:02,732 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:56:02,732 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:56:02,732 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:56:02,732 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@5f16132a - End of configuration.
13:56:02,732 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@69fb6037 - Registering current configuration as safe fallback point
13:56:02,732 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 75 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-18540
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


cypress-terminal-report: Wrote custom logs to cypress-logs. (3ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (3ms)

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        2                                                                                │
  │ Passing:      2                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     11 seconds                                                                       │
  │ Spec Ran:     WEB_001_003_move_content.cy.js                                                   │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Video)

  -  Video output: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/cypress/videos/WEB_001_003_move_content.cy.js.mp4


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_002_001_admin_add_new_course_and_teacher.cy.js                             (4 of 30)
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: stopping server on port: 18540
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=12723 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:56:16,348 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:56:16,348 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - No custom configurators were discovered as a service.
13:56:16,348 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:56:16,349 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:56:16,352 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:56:16,352 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:56:16,356 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:56:16,356 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:56:16,356 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:56:16,356 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:56:16,358 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:56:16,359 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@71c3b41 - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:56:16,401 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:56:16,401 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:56:16,414 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - No compression will be used
13:56:16,414 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:56:16,425 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:56:16,425 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Roll-over at midnight.
13:56:16,429 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Setting initial period to 2025-06-17T11:56:16.208Z
13:56:16,429 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:56:16,429 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:56:16,431 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:56:16,436 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723/log/ustad-server.log
13:56:16,436 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723/log/ustad-server.log]
13:56:16,437 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:56:16,437 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:56:16,437 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:56:16,437 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:56:16,437 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@6bf0219d - End of configuration.
13:56:16,438 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@dd0c991 - Registering current configuration as safe fallback point
13:56:16,438 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 82 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-12723
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


cypress-terminal-report: Wrote custom logs to cypress-logs. (5ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (5ms)

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        3                                                                                │
  │ Passing:      3                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     30 seconds                                                                       │
  │ Spec Ran:     WEB_002_001_admin_add_new_course_and_teacher.cy.js                               │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Video)

  -  Video output: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/cypress/videos/WEB_002_001_admin_add_new_course_and_teacher.cy.js.mp4


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_002_003_teacher_record_attendance.cy.js                                    (5 of 30)
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: stopping server on port: 12723
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=11836 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:56:49,014 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:56:49,015 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - No custom configurators were discovered as a service.
13:56:49,015 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:56:49,015 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:56:49,018 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:56:49,018 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:56:49,022 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:56:49,022 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:56:49,022 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:56:49,022 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:56:49,023 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:56:49,025 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@71c3b41 - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:56:49,062 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:56:49,062 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:56:49,075 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - No compression will be used
13:56:49,075 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:56:49,085 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:56:49,085 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Roll-over at midnight.
13:56:49,088 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Setting initial period to 2025-06-17T11:56:48.879Z
13:56:49,088 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:56:49,088 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:56:49,090 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:56:49,095 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836/log/ustad-server.log
13:56:49,095 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836/log/ustad-server.log]
13:56:49,096 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:56:49,096 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:56:49,096 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:56:49,096 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:56:49,096 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@6bf0219d - End of configuration.
13:56:49,097 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@dd0c991 - Registering current configuration as safe fallback point
13:56:49,097 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 75 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-11836
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


cypress-terminal-report: Wrote custom logs to cypress-logs. (6ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (6ms)

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        2                                                                                │
  │ Passing:      2                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     10 seconds                                                                       │
  │ Spec Ran:     WEB_002_003_teacher_record_attendance.cy.js                                      │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Video)

  -  Video output: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/cypress/videos/WEB_002_003_teacher_record_attendance.cy.js.mp4


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_003_001_add_or_edit_course_permission_test.cy.js                           (6 of 30)
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: stopping server on port: 11836
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=54149 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:57:01,330 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:57:01,331 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - No custom configurators were discovered as a service.
13:57:01,331 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:57:01,331 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:57:01,334 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:57:01,334 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:57:01,337 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:57:01,337 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:57:01,338 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:57:01,338 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:57:01,339 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:57:01,341 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@3cc1435c - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:57:01,379 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:57:01,379 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:57:01,392 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1810899357 - No compression will be used
13:57:01,392 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1810899357 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:57:01,401 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:57:01,401 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - Roll-over at midnight.
13:57:01,404 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - Setting initial period to 2025-06-17T11:57:01.202Z
13:57:01,404 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:57:01,404 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@dd0c991 - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:57:01,406 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:57:01,410 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149/log/ustad-server.log
13:57:01,410 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149/log/ustad-server.log]
13:57:01,411 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:57:01,411 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:57:01,411 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:57:01,411 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:57:01,411 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@5f16132a - End of configuration.
13:57:01,412 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@69fb6037 - Registering current configuration as safe fallback point
13:57:01,412 |-INFO in ch.qos.logback.classic.util.ContextInitializer@236e3f4e - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 74 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-54149
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


cypress-terminal-report: Wrote custom logs to cypress-logs. (7ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (7ms)

  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        3                                                                                │
  │ Passing:      3                                                                                │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        true                                                                             │
  │ Duration:     12 seconds                                                                       │
  │ Spec Ran:     WEB_003_001_add_or_edit_course_permission_test.cy.js                             │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


  (Video)

  -  Video output: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/cypress/videos/WEB_003_001_add_or_edit_course_permission_test.cy.js.mp4


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  WEB_003_002_add_module_text_blocks_and_perform_indent_hide_delete_ac           (7 of 30)
            tions.cy.js                                                                             
TestServerController: start server requested
TestServerController: stopping all servers
TestServerController: stopping server on port: 54149
TestServerController: all stopped
TestServerController: exec /usr/bin/java -Dlogs_dir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912/log -jar build/libs/ustad-server-all.jar runserver -config=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../app-ktor-server/src/main/resources/application.conf -P:ktor.deployment.port=5912 -P:ktor.ustad.datadir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912 -P:ktor.ustad.jsDevServer= -P:ktor.ustad.useMockEmail=true
http://37.27.227.212:8071/umapp/ ready
13:57:15,911 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version ?
13:57:15,911 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - No custom configurators were discovered as a service.
13:57:15,911 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
13:57:15,912 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
13:57:15,915 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
13:57:15,915 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
13:57:15,918 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
13:57:15,918 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
13:57:15,918 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
13:57:15,919 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:57:15,920 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml]
13:57:15,922 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@71c3b41 - URL [jar:file:/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/app-ktor-server/build/libs/ustad-server-all.jar!/logback.xml] is not of type file
13:57:15,961 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
13:57:15,961 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
13:57:15,974 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - No compression will be used
13:57:15,974 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@594427726 - Will use the pattern /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912/log/ustad-server.%d{yyyy-MM-dd}.%i.log for the active file
13:57:15,983 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912/log/ustad-server.%d{yyyy-MM-dd}.%i.log'.
13:57:15,984 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Roll-over at midnight.
13:57:15,986 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - Setting initial period to 2025-06-17T11:57:15.769Z
13:57:15,986 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
13:57:15,986 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@3cc1435c - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
13:57:15,988 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:57:15,993 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912/log/ustad-server.log
13:57:15,993 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912/log/ustad-server.log]
13:57:15,993 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
13:57:15,993 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
13:57:15,994 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
13:57:15,994 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
13:57:15,994 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@6bf0219d - End of configuration.
13:57:15,994 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@dd0c991 - Registering current configuration as safe fallback point
13:57:15,994 |-INFO in ch.qos.logback.classic.util.ContextInitializer@157853da - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 76 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

DataDir=/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/../../testserver-controller/build/data/server-5912
CreateLearningSpaceRequest(url=http://37.27.227.212:8071/, title=TestLearningSpace, dbUrl=null, dbUsername=, dbPassword=, adminUsername=admin, adminPassword=testpass)
Done: OK


cypress-terminal-report: Wrote custom logs to cypress-logs. (9ms)
cypress-terminal-report: Wrote custom logs to cypress-logs. (8ms)
Build timed out (after 300 minutes). Marking the build as failed.
[1175492:0617/184805.787487:FATAL:electron_browser_main_parts.cc(504)] Failed to shutdown.
The Test Runner unexpectedly exited via a exit event with signal SIGTRAP

Please search Cypress documentation for possible solutions:

https://on.cypress.io

Check if there is a GitHub issue describing this crash:

https://github.com/cypress-io/cypress/issues

Consider opening a new issue.

----------

Platform: linux-x64 (Ubuntu - 24.04)
Cypress Version: 14.0.3
Error: Command failed with exit code 1: npm run cy:run-ci
    at makeError (/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/node_modules/start-server-and-test/node_modules/execa/lib/error.js:60:11)
    at handlePromise (/home/jenkins/.jenkins/workspace/Primary-End-To-End-Tests/test-end-to-end/webapp-cypress/node_modules/start-server-and-test/node_modules/execa/index.js:118:26)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  shortMessage: 'Command failed with exit code 1: npm run cy:run-ci',
  command: 'npm run cy:run-ci',
  escapedCommand: '"npm run cy:run-ci"',
  exitCode: 1,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
Build was aborted
[htmlpublisher] Archiving HTML reports...
Recording test results
[Checks API] No suitable checks publisher found.
[Slack Notifications] found #556 as previous completed, non-aborted build
[Slack Notifications] will send OnEveryFailureNotification because build matches and user preferences allow it
Finished: FAILURE