Class com.ustadmobile.core.viewmodel.login.LoginViewModelTest

6

tests

0

failures

0

ignored

0.086s

duration

100%

successful

Tests

Test Method name Duration Result
givenEmptyUsernameAndPassword_whenLoginCalled_thenShouldShowError[jvm] givenEmptyUsernameAndPassword_whenLoginCalled_thenShouldShowError 0.023s passed
givenGuestConnectionAllowedOrNot_whenCreated_thenGuestButtonVisibiltyShouldMatch[jvm] givenGuestConnectionAllowedOrNot_whenCreated_thenGuestButtonVisibiltyShouldMatch 0.042s passed
givenInvalidUsernameAndPassword_whenHandleLoginCalled_thenShouldCallSetErrorMessage[jvm] givenInvalidUsernameAndPassword_whenHandleLoginCalled_thenShouldCallSetErrorMessage 0.006s passed
givenServerOffline_whenCreated_thenShouldShowErrorMessage[jvm] givenServerOffline_whenCreated_thenShouldShowErrorMessage 0.003s passed
givenUsernameOrPasswordContainsSpacePadding_whenLoginCalled_thenShouldTrimSpace[jvm] givenUsernameOrPasswordContainsSpacePadding_whenLoginCalled_thenShouldTrimSpace 0.003s passed
givenValidUsernameAndPassword_whenFromDestinationArgumentIsProvidedAndHandleLoginClicked_shouldGoToNextScreenAndInvalidateSync[jvm] givenValidUsernameAndPassword_whenFromDestinationArgumentIsProvidedAndHandleLoginClicked_shouldGoToNextScreenAndInvalidateSync 0.009s passed

Standard error

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=8119492096524012700 remoteEndpoint=http://localhost.localdomain:58329/UmAppDatabase/] : onError
java.io.IOException: other event source error
	at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)
	at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)
	at okhttp3.internal.sse.RealEventSource.onResponse(RealEventSource.kt:46)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=8119492096524012700 remoteEndpoint=http://localhost.localdomain:58329/UmAppDatabase/] : onError
java.io.IOException: other event source error
	at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)
	at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)
	at okhttp3.internal.sse.RealEventSource.onResponse(RealEventSource.kt:46)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorEventSource$eventSourceListener$1$onFailure$invokeSuspend - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@47f0972e - http://localhost.localdomain:58329/UmAppDatabase/replication/sse?door-node=8119492096524012700%2Fcc607f8c-f8fd-4e7c-948f-d13dcdbf7e1a] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorEventSource$eventSourceListener$1$onFailure$invokeSuspend - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@47f0972e - http://localhost.localdomain:58329/UmAppDatabase/replication/sse?door-node=8119492096524012700%2Fcc607f8c-f8fd-4e7c-948f-d13dcdbf7e1a] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/inaccessible_.sqlite] - useNewConnectionAsyncInternal connection #7 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://inaccessible/UmAppDatabase/ - endpoint=http://inaccessible/UmAppDatabase/] getRemoteNodeId : exception getting remote node id
java.net.UnknownHostException: inaccessible
	at _COROUTINE._BOUNDARY._(CoroutineDebugging.kt:42)
	at io.ktor.client.engine.okhttp.OkHttpEngine.executeHttpRequest(OkHttpEngine.kt:103)
	at io.ktor.client.engine.okhttp.OkHttpEngine.execute(OkHttpEngine.kt:70)
	at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
	at io.ktor.client.engine.HttpClientEngine$DefaultImpls.executeWithinCallContext(HttpClientEngine.kt:100)
	at io.ktor.client.engine.HttpClientEngine$install$1.invokeSuspend(HttpClientEngine.kt:70)
	at io.ktor.client.plugins.HttpSend$DefaultSender.execute(HttpSend.kt:138)
	at io.ktor.client.plugins.HttpTimeout$Plugin$install$1.invokeSuspend(HttpTimeout.kt:174)
	at io.ktor.client.plugins.HttpRedirect$Plugin$install$1.invokeSuspend(HttpRedirect.kt:64)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:151)
	at io.ktor.client.plugins.HttpSend$Plugin$install$1.invokeSuspend(HttpSend.kt:104)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:130)
	at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invokeSuspend(HttpRequestLifecycle.kt:38)
	at io.ktor.client.HttpClient.execute$ktor_client_core(HttpClient.kt:191)
	at io.ktor.client.statement.HttpStatement.executeUnsafe(HttpStatement.kt:108)
	at io.ktor.client.statement.HttpStatement.execute(HttpStatement.kt:47)
	at com.ustadmobile.door.replication.DoorRepositoryReplicationClient$1.invokeSuspend(DoorRepositoryReplicationClient.kt:492)
Caused by: java.net.UnknownHostException: inaccessible
	at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801)
	at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1533)
	at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1385)
	at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1306)
	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:169)
	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:131)
	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:73)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://inaccessible/UmAppDatabase/ - endpoint=http://inaccessible/UmAppDatabase/] getRemoteNodeId : exception getting remote node id
java.net.UnknownHostException: inaccessible
	at _COROUTINE._BOUNDARY._(CoroutineDebugging.kt:42)
	at io.ktor.client.engine.okhttp.OkHttpEngine.executeHttpRequest(OkHttpEngine.kt:103)
	at io.ktor.client.engine.okhttp.OkHttpEngine.execute(OkHttpEngine.kt:70)
	at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
	at io.ktor.client.engine.HttpClientEngine$DefaultImpls.executeWithinCallContext(HttpClientEngine.kt:100)
	at io.ktor.client.engine.HttpClientEngine$install$1.invokeSuspend(HttpClientEngine.kt:70)
	at io.ktor.client.plugins.HttpSend$DefaultSender.execute(HttpSend.kt:138)
	at io.ktor.client.plugins.HttpTimeout$Plugin$install$1.invokeSuspend(HttpTimeout.kt:174)
	at io.ktor.client.plugins.HttpRedirect$Plugin$install$1.invokeSuspend(HttpRedirect.kt:64)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:151)
	at io.ktor.client.plugins.HttpSend$Plugin$install$1.invokeSuspend(HttpSend.kt:104)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:130)
	at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invokeSuspend(HttpRequestLifecycle.kt:38)
	at io.ktor.client.HttpClient.execute$ktor_client_core(HttpClient.kt:191)
	at io.ktor.client.statement.HttpStatement.executeUnsafe(HttpStatement.kt:108)
	at io.ktor.client.statement.HttpStatement.execute(HttpStatement.kt:47)
	at com.ustadmobile.door.replication.DoorRepositoryReplicationClient$1.invokeSuspend(DoorRepositoryReplicationClient.kt:492)
Caused by: java.net.UnknownHostException: inaccessible
	at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801)
	at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1533)
	at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1385)
	at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1306)
	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:169)
	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:131)
	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:73)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER DoorLog - Closed HikariDataSource connection pool
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Rolled back changes
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Rolled back changes
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite::memory:] - Exception running INSERT INTO UserSession (usUid, usPcsn, usLcsn, usLcb, usLct, usPersonUid, usClientNodeId, usStartTime, usEndTime, usStatus, usReason, usAuth, usSessionType) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite::memory:] - Exception running INSERT INTO UserSession (usUid, usPcsn, usLcsn, usLcb, usLct, usPersonUid, usClientNodeId, usStartTime, usEndTime, usStatus, usReason, usAuth, usSessionType) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_58329_.sqlite] - useNewConnectionAsyncInternal connection #20 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:58329/UmAppDatabase/ - endpoint=http://localhost.localdomain:58329/UmAppDatabase/] getRemoteNodeId : exception getting remote node id
java.lang.IllegalStateException: [DoorRepositoryReplicationClient - http://localhost.localdomain:58329/UmAppDatabase/ - endpoint=http://localhost.localdomain:58329/UmAppDatabase/] getRemoteNodeId : server did not provide node id
	at com.ustadmobile.door.replication.DoorRepositoryReplicationClient$1.invokeSuspend(DoorRepositoryReplicationClient.kt:275)
	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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:58329/UmAppDatabase/ - endpoint=http://localhost.localdomain:58329/UmAppDatabase/] getRemoteNodeId : exception getting remote node id
java.lang.IllegalStateException: [DoorRepositoryReplicationClient - http://localhost.localdomain:58329/UmAppDatabase/ - endpoint=http://localhost.localdomain:58329/UmAppDatabase/] getRemoteNodeId : server did not provide node id
	at com.ustadmobile.door.replication.DoorRepositoryReplicationClient$1.invokeSuspend(DoorRepositoryReplicationClient.kt:275)
	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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER DoorLog - Closed HikariDataSource connection pool
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Rolled back changes
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Rolled back changes
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite::memory:] - Exception running INSERT INTO UserSession (usUid, usPcsn, usLcsn, usLcb, usLct, usPersonUid, usClientNodeId, usStartTime, usEndTime, usStatus, usReason, usAuth, usSessionType) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite::memory:] - Exception running INSERT INTO UserSession (usUid, usPcsn, usLcsn, usLcb, usLct, usPersonUid, usClientNodeId, usStartTime, usEndTime, usStatus, usReason, usAuth, usSessionType) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER DoorLog - Closed HikariDataSource connection pool
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Rolled back changes
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
INFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Rolled back changes
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite::memory:] - Exception running INSERT INTO UserSession (usUid, usPcsn, usLcsn, usLcb, usLct, usPersonUid, usClientNodeId, usStartTime, usEndTime, usStatus, usReason, usAuth, usSessionType) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
SEVERE: SEVERE DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite::memory:] - Exception running INSERT INTO UserSession (usUid, usPcsn, usLcsn, usLcb, usLct, usPersonUid, usClientNodeId, usStartTime, usEndTime, usStatus, usReason, usAuth, usSessionType) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
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)

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
FINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: CourseListHome
Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING LoginViewModel$invokeSuspend - Could not load site object for http://localhost:79/
java.net.ConnectException: Failed to connect to localhost/127.0.0.1:79
	at _COROUTINE._BOUNDARY._(CoroutineDebugging.kt:42)
	at io.ktor.client.engine.okhttp.OkHttpEngine.executeHttpRequest(OkHttpEngine.kt:103)
	at io.ktor.client.engine.okhttp.OkHttpEngine.execute(OkHttpEngine.kt:70)
	at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
	at io.ktor.client.engine.HttpClientEngine$DefaultImpls.executeWithinCallContext(HttpClientEngine.kt:100)
	at io.ktor.client.engine.HttpClientEngine$install$1.invokeSuspend(HttpClientEngine.kt:70)
	at io.ktor.client.plugins.HttpSend$DefaultSender.execute(HttpSend.kt:138)
	at io.ktor.client.plugins.HttpTimeout$Plugin$install$1.invokeSuspend(HttpTimeout.kt:174)
	at io.ktor.client.plugins.HttpRedirect$Plugin$install$1.invokeSuspend(HttpRedirect.kt:64)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:151)
	at io.ktor.client.plugins.HttpSend$Plugin$install$1.invokeSuspend(HttpSend.kt:104)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:130)
	at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invokeSuspend(HttpRequestLifecycle.kt:38)
	at io.ktor.client.HttpClient.execute$ktor_client_core(HttpClient.kt:191)
	at io.ktor.client.statement.HttpStatement.executeUnsafe(HttpStatement.kt:108)
	at io.ktor.client.statement.HttpStatement.execute(HttpStatement.kt:47)
	at com.ustadmobile.core.util.ext.HttpClientExtKt.verifySite(HttpClientExt.kt:35)
	at com.ustadmobile.core.viewmodel.login.LoginViewModel$4.invokeSuspend(LoginViewModel.kt:170)
Caused by: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:79
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.net.ConnectException: Connection refused
	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	... 18 more

Jul 16, 2025 7:09:21 AM com.ustadmobile.core.util.NapierAntilogJvm performLog
WARNING: WARNING LoginViewModel$invokeSuspend - Could not load site object for http://localhost:79/
java.net.ConnectException: Failed to connect to localhost/127.0.0.1:79
	at _COROUTINE._BOUNDARY._(CoroutineDebugging.kt:42)
	at io.ktor.client.engine.okhttp.OkHttpEngine.executeHttpRequest(OkHttpEngine.kt:103)
	at io.ktor.client.engine.okhttp.OkHttpEngine.execute(OkHttpEngine.kt:70)
	at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
	at io.ktor.client.engine.HttpClientEngine$DefaultImpls.executeWithinCallContext(HttpClientEngine.kt:100)
	at io.ktor.client.engine.HttpClientEngine$install$1.invokeSuspend(HttpClientEngine.kt:70)
	at io.ktor.client.plugins.HttpSend$DefaultSender.execute(HttpSend.kt:138)
	at io.ktor.client.plugins.HttpTimeout$Plugin$install$1.invokeSuspend(HttpTimeout.kt:174)
	at io.ktor.client.plugins.HttpRedirect$Plugin$install$1.invokeSuspend(HttpRedirect.kt:64)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:151)
	at io.ktor.client.plugins.HttpSend$Plugin$install$1.invokeSuspend(HttpSend.kt:104)
	at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:130)
	at io.ktor.client.plugins.HttpRequestLifecycle$Plugin$install$1.invokeSuspend(HttpRequestLifecycle.kt:38)
	at io.ktor.client.HttpClient.execute$ktor_client_core(HttpClient.kt:191)
	at io.ktor.client.statement.HttpStatement.executeUnsafe(HttpStatement.kt:108)
	at io.ktor.client.statement.HttpStatement.execute(HttpStatement.kt:47)
	at com.ustadmobile.core.util.ext.HttpClientExtKt.verifySite(HttpClientExt.kt:35)
	at com.ustadmobile.core.viewmodel.login.LoginViewModel$4.invokeSuspend(LoginViewModel.kt:170)
Caused by: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:79
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.net.ConnectException: Connection refused
	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
	at java.base/java.net.Socket.connect(Socket.java:633)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	... 18 more