> Task :respect-lib-xapi-ipc-server:generateDebugUnitTestStubRFile
> Task :respect-lib-xapi-ipc-server:verifyReleaseResources
> Task :respect-lib-xapi-ipc-shared:mergeReleaseResources
> Task :respect-lib-xapi-ipc-server:assembleRelease
> Task :respect-lib-xapi-ipc-server:assemble
> Task :respect-lib-xapi-ipc-server:compileDebugUnitTestKotlinNO-SOURCE
> Task :respect-lib-xapi-ipc-server:compileDebugUnitTestJavaWithJavacNO-SOURCE
> Task :respect-lib-xapi-ipc-server:processDebugUnitTestJavaResNO-SOURCE
> Task :respect-lib-xapi-ipc-server:testDebugUnitTestNO-SOURCE
> Task :respect-lib-xapi-ipc-server:testUP-TO-DATE
> Task :respect-lib-xapi-ipc-shared:generateDebugLintReportModel
> Task :respect-lib-xapi-ipc-shared:javaPreCompileDebugUnitTest
> Task :respect-lib-xapi-ipc-shared:generateDebugUnitTestStubRFile
> Task :respect-lib-xapi-ipc-shared:lintReportDebug
> Task :respect-lib-xapi-nanohttpd:transformCommonMainDependenciesMetadata
> Task :respect-lib-xapi-ipc-shared:lintDebug
> Task :respect-lib-xapi-ipc-shared:lint
> Task :respect-lib-xapi-ipc-shared:compileDebugUnitTestKotlinNO-SOURCE
> Task :respect-lib-xapi-ipc-shared:compileDebugUnitTestJavaWithJavacNO-SOURCE
> Task :respect-lib-xapi-ipc-shared:processDebugUnitTestJavaResNO-SOURCE
> Task :respect-lib-xapi-ipc-shared:testDebugUnitTestNO-SOURCE
> Task :respect-lib-xapi-ipc-shared:testUP-TO-DATE
> Task :respect-lib-xapi-ipc-shared:check
> Task :respect-lib-xapi-nanohttpd:compileCommonMainKotlinMetadataSKIPPED
> Task :respect-lib-xapi-nanohttpd:generateProjectStructureMetadata
> Task :respect-lib-xapi-nanohttpd:metadataCommonMainProcessResourcesNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:metadataCommonMainClassesUP-TO-DATE
> Task :respect-lib-xapi-nanohttpd:allMetadataJar
> Task :respect-lib-xapi-nanohttpd:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-cache:compileTestKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:93:42 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:122:42 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:157:42 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:191:20 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:205:62 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:241:20 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:272:20 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:286:20 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:333:20 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:359:20 Unnecessary non-null assertion (!!) on a non-null receiver of type 'ResponseBody'.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt:408:22 Unnecessary safe call on a non-null receiver of type 'ResponseBody'.
> Task :respect-lib-xapi-nanohttpd:bundleAndroidMainAar
> Task :respect-lib-xapi-nanohttpd:assembleAndroidMain
> Task :respect-lib-xapi-nanohttpd:jvmProcessResourcesNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:processJvmMainResourcesSKIPPED
> Task :respect-lib-xapi-ipc-shared:verifyReleaseResources
> Task :respect-lib-xapi-nanohttpd:jvmTestProcessResourcesNO-SOURCE
> Task :respect-lib-xapi-ipc-shared:assembleRelease
> Task :respect-lib-xapi-ipc-shared:assemble
> Task :respect-lib-xapi-ipc-shared:build
> Task :respect-lib-xapi-nanohttpd:processJvmTestResourcesSKIPPED
> Task :respect-lib-xxhash:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-xxhash:bundleAndroidMainAar
> Task :respect-lib-xxhash:assembleAndroidMain
> Task :respect-lib-xxhash:assemble
> Task :respect-lib-xxhash:compileTestKotlinJvmNO-SOURCE
> Task :respect-lib-xxhash:compileJvmTestJavaNO-SOURCE
> Task :respect-lib-xxhash:jvmTestProcessResourcesNO-SOURCE
> Task :respect-lib-xxhash:processJvmTestResourcesSKIPPED
> Task :respect-lib-xxhash:jvmTestClassesUP-TO-DATE
> Task :respect-lib-xxhash:jvmTestNO-SOURCE
> Task :respect-lib-xxhash:allTestsNO-SOURCE
> Task :respect-lib-xxhash:checkUP-TO-DATE
> Task :respect-lib-xxhash:build
> Task :respect-server:generateTestBuildConfigClassesSKIPPED
> Task :respect-server:processTestResourcesNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:compileKotlinJvm
> Task :respect-server:generateSwaggerUIRespect
> Task :respect-lib-cache:compileJvmTestJavaNO-SOURCE
> Task :respect-lib-cache:jvmTestClasses
> Task :respect-datalayer-db:kspAndroidMain
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt:94: world.respect.datalayer.school.model.composites.PersonListDetails has some properties [email, phoneNumber, role] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the function with @SuppressWarnings(RoomWarnings.QUERY_MISMATCH). Columns returned by the query: guid, givenName, familyName, username.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt:137: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt:218: world.respect.datalayer.school.model.composites.PersonListDetails has some properties [email, phoneNumber] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the function with @SuppressWarnings(RoomWarnings.QUERY_MISMATCH). Columns returned by the query: guid, givenName, familyName, username, role.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt:36: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt:93: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt:101: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt:24: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt:58: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt:25: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
> Task :respect-lib-xapi-ipc-client:lintAnalyzeDebug
> Task :respect-datalayer-db:kspKotlinJvm
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt:94: world.respect.datalayer.school.model.composites.PersonListDetails has some properties [email, phoneNumber, role] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the function with @SuppressWarnings(RoomWarnings.QUERY_MISMATCH). Columns returned by the query: guid, givenName, familyName, username.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt:137: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt:218: world.respect.datalayer.school.model.composites.PersonListDetails has some properties [email, phoneNumber] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the function with @SuppressWarnings(RoomWarnings.QUERY_MISMATCH). Columns returned by the query: guid, givenName, familyName, username, role.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt:36: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt:93: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt:101: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt:24: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt:58: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
w: [ksp] /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt:25: The return value includes a data class with a @Relation. It is usually desired to annotate this function with @Transaction to avoid possibility of inconsistent results between the data class and its relations. See https://developer.android.com/reference/androidx/room/Transaction.html for details.
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
> Task :respect-lib-cache:jvmTest
> Task :respect-datalayer-db:jvmProcessResourcesNO-SOURCE
> Task :respect-datalayer-db:processJvmMainResourcesSKIPPED
> Task :respect-lib-cache:allTests
> Task :respect-lib-cache:check
> Task :respect-lib-cache:build
> Task :respect-lib-xapi-nanohttpd:compileJvmMainJavaNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:jvmMainClasses
> Task :respect-lib-xapi-nanohttpd:jvmJar
> Task :respect-lib-xapi-nanohttpd:assemble
> Task :respect-lib-xapi-nanohttpd:compileTestKotlinJvmNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:compileJvmTestJavaNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:jvmTestClassesUP-TO-DATE
> Task :respect-lib-xapi-nanohttpd:jvmTestNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:allTestsNO-SOURCE
> Task :respect-lib-xapi-nanohttpd:checkUP-TO-DATE
> Task :respect-lib-xapi-nanohttpd:build
> Task :respect-server:generateSwaggerUINO-SOURCE
> Task :respect-lib-xapi-ipc-client:lintReportDebug
> Task :respect-lib-xapi-ipc-client:lintDebug
> Task :respect-lib-xapi-ipc-client:lint
> Task :respect-lib-xapi-ipc-client:check
> Task :respect-lib-xapi-ipc-client:build
> Task :respect-datalayer-db:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/build/generated/ksp/android/androidMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseConstructor.kt:5:8 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/build/generated/ksp/android/androidMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseConstructor.kt:5:8 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
> Task :respect-datalayer-db:compileKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/build/generated/ksp/jvm/jvmMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseConstructor.kt:5:8 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-datalayer-db/build/generated/ksp/jvm/jvmMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseConstructor.kt:5:8 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
> Task :respect-datalayer-db:compileJvmMainJavaNO-SOURCE
> Task :respect-datalayer-db:jvmMainClasses
> Task :respect-datalayer-db:kspTestKotlinJvmSKIPPED
> Task :respect-datalayer-db:copyRoomSchemasNO-SOURCE
> Task :respect-datalayer-db:processAndroidMainJavaRes
> Task :respect-datalayer-db:mergeAndroidMainGeneratedProguardFilesUP-TO-DATE
> Task :respect-datalayer-db:exportAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-datalayer-db:bundleAndroidMainClassesToCompileJar
> Task :respect-datalayer-db:mergeAndroidMainJavaResource
> Task :respect-datalayer-db:bundleAndroidMainClassesToRuntimeJar
> Task :respect-datalayer-db:bundleLibRuntimeToDirAndroidMain
> Task :respect-datalayer-db:jvmJar
> Task :respect-datalayer-db:createFullJarAndroidMain
> Task :respect-lib-shared:extractAndroidMainAnnotations
> Task :respect-datalayer-db:syncAndroidMainLibJars
> Task :respect-datalayer-db:bundleAndroidMainLocalLintAar
> Task :respect-lib-xapi-ipc-server:generateDebugAndroidTestLintModel
> Task :respect-datalayer-db:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-datalayer-db:bundleAndroidMainAar
> Task :respect-datalayer-db:assembleAndroidMain
> Task :respect-datalayer-db:assemble
> Task :respect-datalayer-db:jvmTestProcessResources
> Task :respect-datalayer-db:processJvmTestResourcesSKIPPED
> Task :respect-lib-test:extractAndroidMainAnnotations
> Task :respect-lib-test:compileAndroidMainNO-SOURCE
> Task :respect-lib-test:mergeAndroidMainGeneratedProguardFilesUP-TO-DATE
> Task :respect-lib-test:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-test:processAndroidMainJavaResNO-SOURCE
> Task :respect-lib-test:mergeAndroidMainJavaResource
> Task :respect-lib-test:syncAndroidMainLibJars
> Task :respect-lib-test:bundleAndroidMainAar
> Task :respect-lib-test:assembleAndroidMain
> Task :respect-datalayer-db:compileTestKotlinJvm
> Task :respect-datalayer-db:compileJvmTestJavaNO-SOURCE
> Task :respect-datalayer-db:jvmTestClasses
> Task :respect-lib-xapi-ipc-server:lintAnalyzeDebugAndroidTest
> Task :respect-datalayer-db:jvmTest
> Task :respect-datalayer-db:allTests
> Task :respect-datalayer-db:check
> Task :respect-datalayer-db:build
> Task :respect-lib-xapi-ipc-server:lintReportDebug
> Task :respect-lib-xapi-ipc-server:lintDebug
> Task :respect-lib-xapi-ipc-server:lint
> Task :respect-lib-xapi-ipc-server:check
> Task :respect-lib-xapi-ipc-server:build
> Task :respect-lib-shared:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt:67:70 'fun String.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt:26:14 'fun String.decodeBase64String(): String' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt:11:1 Annotation `@ParameterName(name = "date")` is missing on actual declaration.
All annotations from expect `world.respect.shared.util.rememberFormattedDateTime` must be present with the same arguments on actual `world.respect.shared.util.rememberFormattedDateTime`, otherwise they might behave incorrectly.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt:22:31 'fun ByteArray.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt:23:64 'fun String.decodeBase64Bytes(): ByteArray' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt:24:70 'fun ByteArray.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
> Task :respect-lib-shared:processAndroidMainJavaRes
> Task :respect-lib-shared:mergeAndroidMainGeneratedProguardFilesUP-TO-DATE
> Task :respect-lib-shared:exportAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-shared:bundleAndroidMainClassesToCompileJar
> Task :respect-lib-shared:compileKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt:22:31 'fun ByteArray.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt:23:64 'fun String.decodeBase64Bytes(): ByteArray' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt:24:70 'fun ByteArray.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
> Task :respect-lib-shared-se:extractAndroidMainAnnotations
> Task :respect-lib-shared:compileJvmMainJavaNO-SOURCE
> Task :respect-lib-shared:jvmMainClasses
> Task :respect-lib-shared:mergeAndroidMainJavaResource
> Task :respect-lib-shared:bundleAndroidMainClassesToRuntimeJar
> Task :respect-lib-shared:bundleLibRuntimeToDirAndroidMain
> Task :respect-lib-shared:jvmJar
> Task :respect-lib-shared:createFullJarAndroidMain
> Task :respect-lib-shared-se:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt:45:46 'fun String.decodeBase64Bytes(): ByteArray' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt:46:46 'fun String.decodeBase64Bytes(): ByteArray' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
> Task :respect-lib-shared:syncAndroidMainLibJars
> Task :respect-lib-shared-se:bundleAndroidMainClassesToCompileJar
> Task :respect-lib-shared-se:processAndroidMainJavaRes
> Task :respect-lib-shared-se:mergeAndroidMainGeneratedProguardFilesUP-TO-DATE
> Task :respect-lib-shared-se:exportAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-shared-se:bundleLibRuntimeToDirAndroidMain
> Task :respect-lib-shared-se:bundleAndroidMainClassesToRuntimeJar
> Task :respect-app-compose:extractAndroidMainAnnotations
> Task :respect-lib-shared-se:createFullJarAndroidMain
> Task :respect-lib-shared-se:mergeAndroidMainJavaResource
> Task :respect-lib-shared:bundleAndroidMainLocalLintAar
> Task :respect-lib-shared-se:syncAndroidMainLibJars
> Task :respect-lib-shared-se:bundleAndroidMainLocalLintAar
> Task :respect-lib-shared:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-shared:bundleAndroidMainAar
> Task :respect-lib-shared:assembleAndroidMain
> Task :respect-lib-shared:assemble
> Task :respect-lib-shared-se:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-lib-shared-se:bundleAndroidMainAar
> Task :respect-lib-shared-se:assembleAndroidMain
> Task :respect-cli:compileKotlin
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt:65:32 Unnecessary safe call on a non-null receiver of type 'Namespace'.
> Task :respect-lib-shared-se:compileKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt:45:46 'fun String.decodeBase64Bytes(): ByteArray' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt:46:46 'fun String.decodeBase64Bytes(): ByteArray' is deprecated. Ambiguous and lenient. Use `Base64.Default.decode()` from the Kotlin standard library.
> Task :respect-lib-shared-se:compileJvmMainJavaNO-SOURCE
> Task :respect-lib-shared-se:jvmMainClasses
> Task :respect-lib-shared-se:jvmJar
> Task :respect-cli:compileJavaNO-SOURCE
> Task :respect-cli:classesUP-TO-DATE
> Task :respect-cli:jar
> Task :respect-cli:startScripts
> Task :respect-cli:distTar
> Task :respect-cli:distZip
> Task :respect-cli:assemble
> Task :respect-cli:compileTestKotlinNO-SOURCE
> Task :respect-cli:compileTestJavaNO-SOURCE
> Task :respect-cli:testClassesUP-TO-DATE
> Task :respect-cli:testNO-SOURCE
> Task :respect-cli:checkUP-TO-DATE
> Task :respect-cli:build
> Task :respect-lib-shared-se:assemble
> Task :respect-server:compileKotlin
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt:60:57 'fun String.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
> Task :respect-server:compileJavaNO-SOURCE
> Task :respect-server:classes
> Task :respect-server:jar
> Task :respect-server:startScripts
> Task :respect-server:distTar
> Task :respect-lib-test:compileKotlinJvm
> Task :respect-server:distZip
> Task :respect-lib-test:compileJvmMainJavaNO-SOURCE
> Task :respect-lib-test:jvmMainClasses
> Task :respect-lib-test:jvmJar
> Task :respect-lib-shared-se:compileTestKotlinJvmNO-SOURCE
> Task :respect-lib-shared-se:compileJvmTestJavaNO-SOURCE
> Task :respect-lib-shared-se:jvmTestClassesUP-TO-DATE
> Task :respect-lib-shared-se:jvmTestNO-SOURCE
> Task :respect-lib-shared-se:allTestsNO-SOURCE
> Task :respect-lib-shared-se:checkUP-TO-DATE
> Task :respect-lib-shared-se:build
> Task :respect-lib-test:assemble
> Task :respect-lib-test:compileTestKotlinJvmNO-SOURCE
> Task :respect-lib-test:compileJvmTestJavaNO-SOURCE
> Task :respect-lib-test:jvmTestClassesUP-TO-DATE
> Task :respect-lib-test:jvmTestNO-SOURCE
> Task :respect-lib-test:allTestsNO-SOURCE
> Task :respect-lib-test:checkUP-TO-DATE
> Task :respect-lib-test:build
> Task :respect-lib-shared:compileTestKotlinJvm
> Task :respect-datalayer-repository:compileTestKotlinJvm
> Task :respect-app-compose:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt:20:18 This declaration overrides a deprecated member but is not marked as deprecated itself. Add the '@Deprecated' annotation or suppress the diagnostic.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt:10:1 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt:25:21 'constructor(p0: String!): Locale' is deprecated. Deprecated in Java.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt:31:19 'fun updateConfiguration(p0: Configuration!, p1: DisplayMetrics!): Unit' is deprecated. Deprecated in Java.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt:107:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt:13:1 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt:38:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt:186:25 Expression is unused.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt:98:41 'val outlinedButtonBorder: BorderStroke' is deprecated. Please use the version that takes an `enabled` param to get the `BorderStroke` with the correct opacity.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt:53:44 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt:66:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt:423:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt:431:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt:46:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt:120:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt:91:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:130:33 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:141:56 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt:410:18 'fun Modifier.menuAnchor(): Modifier' is deprecated. Use overload that takes ExposedDropdownMenuAnchorType and enabled parameters.
> Task :respect-app-compose:compileKotlinDesktop
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt:107:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt:13:1 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt:38:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt:186:25 Expression is unused.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt:98:41 'val outlinedButtonBorder: BorderStroke' is deprecated. Please use the version that takes an `enabled` param to get the `BorderStroke` with the correct opacity.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt:53:44 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt:66:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt:423:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt:431:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt:46:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt:120:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt:91:2 'annotation class Preview : Annotation' is deprecated. Use androidx.compose.ui.tooling.preview.Preview from org.jetbrains.compose.ui:ui-tooling-preview module instead.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:130:33 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:141:56 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt:410:18 'fun Modifier.menuAnchor(): Modifier' is deprecated. Use overload that takes ExposedDropdownMenuAnchorType and enabled parameters.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/desktopMain/kotlin/world/respect/app/app/AppIcon.desktop.kt:15:19 'fun painterResource(resourcePath: String): Painter' is deprecated. Migrate to the Compose resources library. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-images-resources.html If you need to load resources specificly from Java classpath, you should still use the new resource library and use a snippet from https://github.com/JetBrains/compose-multiplatform-core/pull/1457.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt:9:1 'expect'/'actual' classes (including interfaces, objects, annotations, enums, and 'actual' typealiases) are in Beta. Consider using the '-Xexpect-actual-classes' flag to suppress this warning. Also see: https://youtrack.jetbrains.com/issue/KT-61573
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt:22:21 'constructor(p0: String!): Locale' is deprecated. Deprecated in Java.
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/respect-app-compose/src/desktopMain/kotlin/world/respect/images/RespectImage.desktop.kt:13:12 'fun painterResource(resourcePath: String): Painter' is deprecated. Migrate to the Compose resources library. See https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-images-resources.html If you need to load resources specificly from Java classpath, you should still use the new resource library and use a snippet from https://github.com/JetBrains/compose-multiplatform-core/pull/1457.
> Task :respect-server:shadowJar
> Task :respect-app-compose:processAndroidMainJavaRes
> Task :respect-app-compose:mergeAndroidMainGeneratedProguardFilesUP-TO-DATE
> Task :respect-app-compose:bundleAndroidMainClassesToCompileJar
> Task :respect-app-compose:exportAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-app-compose:mergeAndroidMainConsumerProguardFilesUP-TO-DATE
> Task :respect-app-compose:compileDesktopMainJavaNO-SOURCE
> Task :respect-app-compose:desktopMainClasses
> Task :respect-app-compose:mergeAndroidMainJavaResource
> Task :respect-app-compose:bundleAndroidMainClassesToRuntimeJar
> Task :respect-app-compose:bundleLibRuntimeToDirAndroidMain
> Task :respect-app-compose:desktopJar
> Task :respect-app-compose:createFullJarAndroidMain
> Task :respect-app-compose:syncAndroidMainLibJars
> Task :respect-app-compose:bundleAndroidMainLocalLintAar
> Task :respect-app-compose:bundleAndroidMainAar
> Task :respect-app-compose:assembleAndroidMain
> Task :respect-app-compose:assemble
> Task :respect-app-compose:compileTestKotlinDesktopNO-SOURCE
> Task :respect-app-compose:compileDesktopTestJavaNO-SOURCE
> Task :respect-app-compose:desktopTestClasses
> Task :respect-app-compose:desktopTestNO-SOURCE
> Task :respect-app-compose:allTestsNO-SOURCE
> Task :respect-app-compose:checkUP-TO-DATE
> Task :respect-app-compose:build
> Task :respect-datalayer-repository:compileJvmTestJavaNO-SOURCE
> Task :respect-datalayer-repository:jvmTestClasses
2026-08-11 23:10:23.658 [Test worker] INFO io.ktor.server.Application - Application started in 0.289 seconds.
> Task :app-android:compileReleaseKotlin
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/app-android/src/main/kotlin/world/respect/RespectApp.kt:44:21 This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
2026-08-11 23:10:23.758 [DefaultDispatcher-worker-1 @coroutine#2] INFO io.ktor.server.Application - Responding at http://0.0.0.0:35591
> Task :app-android:compileDebugKotlin
w: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/app-android/src/main/kotlin/world/respect/RespectApp.kt:44:21 This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
2026-08-11 23:10:24.483 [DefaultDispatcher-worker-2 @coroutine#8] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:35591/resources/index.json
2026-08-11 23:10:24.485 [DefaultDispatcher-worker-2 @coroutine#8] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:35591/resources/index.json.
2026-08-11 23:10:24.633 [eventLoopGroupProxy-4-1 @call-handler#11] TRACE io.ktor.server.routing.Routing - Trace for [resources, index.json]
/, segment:0 -> SUCCESS @ /
/ [(static-content)], segment:0 -> SUCCESS @ / [(static-content)]
/resources [(static-content)], segment:1 -> SUCCESS @ /resources [(static-content)]
/resources/{...} [(static-content)], segment:2 -> SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content)]
/resources/{...} [(static-content), (method:GET)], segment:2 -> SUCCESS @ /resources/{...} [(static-content), (method:GET)]
Matched routes:
"" -> "(static-content)" -> "resources" -> "{...}" -> "(method:GET)"
Routing resolve result:
SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content), (method:GET)]
2026-08-11 23:10:24.675 [eventLoopGroupProxy-4-1 @call-handler#11] INFO io.ktor.server.Application - 200 OK: GET - /resources/index.json in 47ms
2026-08-11 23:10:24.685 [DefaultDispatcher-worker-2 @coroutine#8] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:35591/resources/index.json
2026-08-11 23:10:24.686 [DefaultDispatcher-worker-2 @coroutine#8] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:35591/resources/index.json
2026-08-11 23:10:24.686 [DefaultDispatcher-worker-2 @coroutine#8] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:35591/resources/index.json
2026-08-11 23:10:24.707 [DefaultDispatcher-worker-2 @coroutine#8] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class world.respect.lib.opds.model.OpdsFeed for http://localhost:35591/resources/index.json.
Loaded in 351 ms
2026-08-11 23:10:24.740 [DefaultDispatcher-worker-2 @coroutine#19] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:35591/resources/index.json
2026-08-11 23:10:24.740 [DefaultDispatcher-worker-2 @coroutine#19] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:35591/resources/index.json.
2026-08-11 23:10:24.742 [eventLoopGroupProxy-4-1 @call-handler#21] TRACE io.ktor.server.routing.Routing - Trace for [resources, index.json]
/, segment:0 -> SUCCESS @ /
/ [(static-content)], segment:0 -> SUCCESS @ / [(static-content)]
/resources [(static-content)], segment:1 -> SUCCESS @ /resources [(static-content)]
/resources/{...} [(static-content)], segment:2 -> SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content)]
/resources/{...} [(static-content), (method:GET)], segment:2 -> SUCCESS @ /resources/{...} [(static-content), (method:GET)]
Matched routes:
"" -> "(static-content)" -> "resources" -> "{...}" -> "(method:GET)"
Routing resolve result:
SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content), (method:GET)]
2026-08-11 23:10:24.744 [eventLoopGroupProxy-4-1 @call-handler#21] INFO io.ktor.server.Application - 304 Not Modified: GET - /resources/index.json in 2ms
2026-08-11 23:10:24.745 [DefaultDispatcher-worker-2 @coroutine#19] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:35591/resources/index.json
2026-08-11 23:10:24.745 [DefaultDispatcher-worker-1 @coroutine#19] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:35591/resources/index.json
2026-08-11 23:10:24.745 [DefaultDispatcher-worker-1 @coroutine#19] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:35591/resources/index.json
Loaded in 373 ms
2026-08-11 23:10:25.758 [Test worker] INFO io.ktor.server.Application - Application started in 0.001 seconds.
2026-08-11 23:10:25.759 [DefaultDispatcher-worker-1 @coroutine#25] INFO io.ktor.server.Application - Responding at http://0.0.0.0:35847
2026-08-11 23:10:25.824 [Test worker @coroutine#29] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:35847/resources/index.json
2026-08-11 23:10:25.825 [Test worker @coroutine#29] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:35847/resources/index.json.
2026-08-11 23:10:25.828 [eventLoopGroupProxy-7-1 @call-handler#33] TRACE io.ktor.server.routing.Routing - Trace for [resources, index.json]
/, segment:0 -> SUCCESS @ /
/ [(static-content)], segment:0 -> SUCCESS @ / [(static-content)]
/resources [(static-content)], segment:1 -> SUCCESS @ /resources [(static-content)]
/resources/{...} [(static-content)], segment:2 -> SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content)]
/resources/{...} [(static-content), (method:GET)], segment:2 -> SUCCESS @ /resources/{...} [(static-content), (method:GET)]
Matched routes:
"" -> "(static-content)" -> "resources" -> "{...}" -> "(method:GET)"
Routing resolve result:
SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content), (method:GET)]
2026-08-11 23:10:25.829 [eventLoopGroupProxy-7-1 @call-handler#33] INFO io.ktor.server.Application - 200 OK: GET - /resources/index.json in 1ms
2026-08-11 23:10:25.830 [Test worker @coroutine#29] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:35847/resources/index.json
2026-08-11 23:10:25.830 [Test worker @coroutine#29] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:35847/resources/index.json
2026-08-11 23:10:25.830 [Test worker @coroutine#29] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:35847/resources/index.json
2026-08-11 23:10:25.830 [Test worker @coroutine#29] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class world.respect.lib.opds.model.OpdsFeed for http://localhost:35847/resources/index.json.
2026-08-11 23:10:25.836 [DefaultDispatcher-worker-2 @coroutine#41] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:35847/resources/index.json
2026-08-11 23:10:25.836 [DefaultDispatcher-worker-2 @coroutine#41] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:35847/resources/index.json.
2026-08-11 23:10:25.837 [eventLoopGroupProxy-7-1 @call-handler#43] TRACE io.ktor.server.routing.Routing - Trace for [resources, index.json]
/, segment:0 -> SUCCESS @ /
/ [(static-content)], segment:0 -> SUCCESS @ / [(static-content)]
/resources [(static-content)], segment:1 -> SUCCESS @ /resources [(static-content)]
/resources/{...} [(static-content)], segment:2 -> SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content)]
/resources/{...} [(static-content), (method:GET)], segment:2 -> SUCCESS @ /resources/{...} [(static-content), (method:GET)]
Matched routes:
"" -> "(static-content)" -> "resources" -> "{...}" -> "(method:GET)"
Routing resolve result:
SUCCESS; Parameters [static-content-path-parameter=[index.json]] @ /resources/{...} [(static-content), (method:GET)]
2026-08-11 23:10:25.838 [eventLoopGroupProxy-7-1 @call-handler#43] INFO io.ktor.server.Application - 304 Not Modified: GET - /resources/index.json in 1ms
2026-08-11 23:10:25.838 [DefaultDispatcher-worker-1 @coroutine#41] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:35847/resources/index.json
2026-08-11 23:10:25.838 [DefaultDispatcher-worker-1 @coroutine#41] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:35847/resources/index.json
2026-08-11 23:10:25.838 [DefaultDispatcher-worker-1 @coroutine#41] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:35847/resources/index.json
2026-08-11 23:10:26.848 [Test worker] INFO io.ktor.server.Application - Application started in 0.001 seconds.
2026-08-11 23:10:26.849 [DefaultDispatcher-worker-1 @coroutine#47] INFO io.ktor.server.Application - Responding at http://0.0.0.0:36355
2026-08-11 23:10:26.856 [Test worker @coroutine#53] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:36355/resources/lesson001.json
2026-08-11 23:10:26.856 [Test worker @coroutine#53] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:36355/resources/lesson001.json.
2026-08-11 23:10:26.859 [eventLoopGroupProxy-10-1 @call-handler#56] TRACE io.ktor.server.routing.Routing - Trace for [resources, lesson001.json]
/, segment:0 -> SUCCESS @ /
/ [(static-content)], segment:0 -> SUCCESS @ / [(static-content)]
/resources [(static-content)], segment:1 -> SUCCESS @ /resources [(static-content)]
/resources/{...} [(static-content)], segment:2 -> SUCCESS; Parameters [static-content-path-parameter=[lesson001.json]] @ /resources/{...} [(static-content)]
/resources/{...} [(static-content), (method:GET)], segment:2 -> SUCCESS @ /resources/{...} [(static-content), (method:GET)]
Matched routes:
"" -> "(static-content)" -> "resources" -> "{...}" -> "(method:GET)"
Routing resolve result:
SUCCESS; Parameters [static-content-path-parameter=[lesson001.json]] @ /resources/{...} [(static-content), (method:GET)]
2026-08-11 23:10:26.860 [eventLoopGroupProxy-10-1 @call-handler#56] INFO io.ktor.server.Application - 200 OK: GET - /resources/lesson001.json in 1ms
2026-08-11 23:10:26.861 [DefaultDispatcher-worker-2 @coroutine#53] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:36355/resources/lesson001.json
2026-08-11 23:10:26.862 [DefaultDispatcher-worker-4 @coroutine#53] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:36355/resources/lesson001.json
2026-08-11 23:10:26.862 [DefaultDispatcher-worker-4 @coroutine#53] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:36355/resources/lesson001.json
2026-08-11 23:10:26.865 [DefaultDispatcher-worker-4 @coroutine#53] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class kotlinx.serialization.json.JsonObject for http://localhost:36355/resources/lesson001.json.
Loaded in 70 ms
> Task :respect-datalayer-repository:jvmTest
> Task :app-android:compileDebugJavaWithJavac
> Task :app-android:processDebugJavaRes
> Task :app-android:dexBuilderDebug
> Task :app-android:mergeProjectDexDebug
> Task :app-android:compileReleaseJavaWithJavac
> Task :app-android:mergeReleaseGeneratedProguardFilesUP-TO-DATE
> Task :app-android:processReleaseJavaRes
> Task :app-android:mergeLibDexDebug
> Task :app-android:generateReleaseLintVitalReportModel
> Task :app-android:bundleDebugClassesToCompileJar
> Task :app-android:generateDebugLintReportModel
> Task :app-android:generateDebugAndroidTestLintModel
> Task :app-android:generateDebugUnitTestLintModel
> Task :app-android:compileDebugUnitTestKotlinNO-SOURCE
> Task :app-android:bundleDebugClassesToRuntimeJar
> Task :app-android:compileDebugUnitTestJavaWithJavacNO-SOURCE
> Task :app-android:processDebugUnitTestJavaResNO-SOURCE
> Task :app-android:testDebugUnitTestNO-SOURCE
> Task :app-android:testUP-TO-DATE
> Task :respect-datalayer-repository:allTests
> Task :respect-datalayer-repository:check
> Task :respect-datalayer-repository:build
> Task :respect-lib-shared:compileJvmTestJavaNO-SOURCE
> Task :respect-lib-shared:jvmTestClasses
> Task :app-android:mergeDebugJavaResource
> Task :app-android:lintAnalyzeDebugUnitTest
> Task :app-android:lintAnalyzeDebugAndroidTest
> Task :app-android:expandReleaseArtProfileWildcards
> Task :app-android:mergeReleaseJavaResource
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
> Task :respect-lib-shared:jvmTest
> Task :respect-lib-shared:allTests
> Task :respect-lib-shared:check
> Task :respect-lib-shared:build
> Task :respect-server:startShadowScripts
> Task :respect-server:shadowDistTar
> Task :app-android:produceReleaseComposeMapping
> Task :respect-server:shadowDistZip
> Task :app-android:reportReleaseComposeMappingErrors
> Task :respect-server:assemble
> Task :respect-server:compileTestKotlinNO-SOURCE
> Task :respect-server:compileTestJavaNO-SOURCE
> Task :respect-server:testClassesUP-TO-DATE
> Task :respect-server:testNO-SOURCE
> Task :respect-server:checkUP-TO-DATE
> Task :respect-server:build
> Task :app-android:packageDebug
> Task :app-android:createDebugApkListingFileRedirect
> Task :app-android:assembleDebug
> Task :app-android:lintVitalAnalyzeRelease
> Task :app-android:lintVitalReportReleaseSKIPPED
> Task :app-android:lintVitalReleaseSKIPPED
> Task :app-android:lintAnalyzeDebug
> Task :app-android:lintReportDebug
Wrote HTML report to file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/app-android/build/reports/lint-results-debug.html
Wrote SARIF report to file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/app-android/build/reports/lint-results-debug.sarif
> Task :app-android:lintDebug
> Task :app-android:lint
> Task :app-android:check
> Task :app-android:minifyReleaseWithR8
> Task :app-android:mergeReleaseComposeMapping
> Task :app-android:convertShrunkResourcesToBinaryRelease
> Task :app-android:compileReleaseArtProfile
> Task :app-android:optimizeReleaseResources
> Task :app-android:packageRelease
> Task :app-android:createReleaseApkListingFileRedirect
> Task :app-android:assembleRelease
> Task :app-android:assemble
> Task :app-android:build
[Incubating] Problems report is available at: file:///home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
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/9.6.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 2m 34s
1143 actionable tasks: 993 executed, 150 up-to-date
Build step 'Invoke Gradle script' changed build result to SUCCESS
[main-offline-endtoend-test] $ /bin/sh -xe /tmp/jenkins6557276004576808436.sh
+ ./ci-run-e2e-tests.sh cloud
ROOTDIR=/home/jenkins/.jenkins/workspace/main-offline-endtoend-test BASH_SOURCE=./ci-run-e2e-tests.sh
cp: cannot stat '/home/mike/IdeaProjects/TestServerController/build/distributions/testservercontroller-0.0.15.zip': No such file or directory
ci-run-maestro: TESTCONTROLLER_URL is https://8070.ustadtesting.ustadmobile.com/
Waiting for localhost:8070..23:11:36,826 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.19
23:11:36,827 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - No custom configurators were discovered as a service.
23:11:36,827 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
23:11:36,827 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
23:11:36,830 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
23:11:36,830 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
23:11:36,834 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 3 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
23:11:36,834 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
23:11:36,834 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
23:11:36,834 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
23:11:36,836 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/testservercontroller-0.0.15/lib/testservercontroller-0.0.15.jar!/logback.xml]
23:11:36,838 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@65987993 - URL [jar:file:/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/testservercontroller-0.0.15/lib/testservercontroller-0.0.15.jar!/logback.xml] is not of type file
23:11:36,874 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@71075444 - value "/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs/" substituted for "${logs_dir:-./log/}"
23:11:36,874 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Main configuration file URL: jar:file:/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/testservercontroller-0.0.15/lib/testservercontroller-0.0.15.jar!/logback.xml
23:11:36,874 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - FileWatchList= {}
23:11:36,875 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - URLWatchList= {}
23:11:36,875 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
23:11:36,875 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
23:11:36,879 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@71075444 - value "/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs//testservercontroller.log" substituted for "${LOG_DIR}/testservercontroller.log"
23:11:36,881 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@71075444 - value "/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs//testservercontroller.%d{yyyy-MM-dd}.%i.log" substituted for "${LOG_DIR}/testservercontroller.%d{yyyy-MM-dd}.%i.log"
23:11:36,884 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1328718765 - No compression will be used
23:11:36,892 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1328718765 - Will use the pattern /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs//testservercontroller.%d{yyyy-MM-dd}.%i.log for the active file
23:11:36,892 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - SizeAndTimeBasedFNATP class was renamed as SizeAndTimeBasedFileNamingAndTriggeringPolicy.
23:11:36,903 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs//testservercontroller.%d{yyyy-MM-dd}.%i.log'.
23:11:36,903 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - Roll-over at midnight.
23:11:36,905 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - Setting initial period to 2026-08-11T19:11:36.905Z
23:11:36,905 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - Direct use of either SizeAndTimeBasedFNATP or SizeAndTimeBasedFileNamingAndTriggeringPolicy
23:11:36,905 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - is deprecated. Please use SizeAndTimeBasedRollingPolicy instead.
23:11:36,905 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - For more information see https://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
23:11:36,906 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
23:11:36,917 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs//testservercontroller.log
23:11:36,917 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace/logs//testservercontroller.log]
23:11:36,918 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
23:11:36,918 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
23:11:36,918 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
23:11:36,918 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
23:11:36,918 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@4d1bf319 - End of configuration.
23:11:36,918 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6f53b8a - Registering current configuration as safe fallback point
23:11:36,918 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 84 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY
.
Connected!
ci-run-e2e-tests: TestServerController now running on port 8070 (pid 994064)
Run Maestro using
Evaluating flow(s)...
Uploading Flow(s)...
....................
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Maestro cloud device specs: │
│ * Maestro_ANDROID_pixel_6_android-35 - en_US │
│ │
│ To change OS version use this option: --device-os=<version> │
│ To change devices use this option: --device-model=<device_model> │
│ To change device locale use this option: --device-locale=<device_locale> │
│ To create a similar device locally, run: `maestro start-device --platform=android --device-model=<device_model> --device-os=35 --device-locale=en_US` │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Visit Maestro Cloud for more details about this upload:
https://app.maestro.dev/project/proj_01k6wzp0pwf75vpcw8vw1gh0y8/maestro-test/app/app_01k6x3hyf9exztk0022nehadkk/upload/mupload_01kzs3ss3be70s1bvzbsxwnkw7
App binary id: 8c997bcf4563cc18bc4853cf9d3dcf683392ce31
Waiting for runs to be completed...
https://8064.ustadtesting.ustadmobile.com/api/directory/school ready
https://8065.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 002_001_browse_lessons_test (3m 32.924s)
https://8068.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 001_003_login_using_school_link_test (2m 8.259s)
https://8062.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 001_001_invite_users_using_qr_code_or_link_test (6m 12.998s)
https://8066.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 006_user_send_feedback_test (1m 32.985s)
https://8061.ustadtesting.ustadmobile.com/api/directory/school ready
[Failed] 001_002_add_user_direct_test (3m 6.659s) (Element not found: Text matching regex: Save)
https://8063.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 002_002_browse_demo_app_test (2m 4.955s)
[Failed] 003_admin_user_assigns_assignment_to_a_class_test (7m 5.998s) (Assertion is false: "Apps", id: app_title is visible)
2/7 Flows Failed
==== View Details on Maestro Cloud ====
https://app.maestro.dev/project/proj_01k6wzp0pwf75vpcw8vw1gh0y8/maestro-test/app/app_01k6x3hyf9exztk0022nehadkk/upload/mupload_01kzs3ss3be70s1bvzbsxwnkw7
Process will exit with code 1 (FAIL)
ci-run-e2e-tests: Cloud run finished (Status: 1). Extracting URL..
ci-run-e2e-tests: Found URL: https://app.maestro.dev/project/proj_01k6wzp0pwf75vpcw8vw1gh0y8/maestro-test/app/app_01k6x3hyf9exztk0022nehadkk/upload/mupload_01kzs3ss3be70s1bvzbsxwnkw7
ci-run-e2e-tests: Navigating to downloader script...
Detected Maestro Cloud URL: https://app.maestro.dev/project/proj_01k6wzp0pwf75vpcw8vw1gh0y8/maestro-test/app/app_01k6x3hyf9exztk0022nehadkk/upload/mupload_01kzs3ss3be70s1bvzbsxwnkw7
Now using node v20.20.2 (npm v10.8.2)
Node version after switch:
/home/jenkins/.nvm/versions/node/v20.20.2/bin/node
v20.20.2
Installing dependencies...
up to date, audited 170 packages in 2s
53 packages are looking for funding
run `npm fund` for details
1 high severity vulnerability
To address all issues, run:
npm audit fix
Run `npm audit` for details.
Starting Cypress to extract video URLs...
[35m[95mWarning:[39m[35m The [33mallowCypressEnv[39m[35m configuration option is enabled. This allows any browser code to read values from [33mCypress.env()[39m[35m. This is insecure and will be removed in a future major version.[39m
[35m[39m
[35m1. Replace [33mCypress.env()[39m[35m calls with [33mcy.env()[39m[35m (for sensitive values) or [33mCypress.expose()[39m[35m (for public configuration)[39m
[35m2. Set [33mallowCypressEnv: false[39m[35m in your Cypress configuration to disable [33mCypress.env()[39m[35m[39m
[35m[39m
[35mLearn more: https://on.cypress.io/cypress-env-migration[39m
[35m[39m
[90m====================================================================================================[39m
[0m ([4m[1mRun Starting[22m[24m)[0m
[90m ┌[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m┐[39m
[90m │[39m [90mCypress:[39m 15.18.1 [90m│[39m
[90m │[39m [90mBrowser:[39m Chrome 151 [90m(headless)[39m [90m│[39m
[90m │[39m [90mNode Version:[39m [0mv20.20.2 [90m(/home/jenkins/.nvm/versions/node/v20.20.2/bin/node)[39m[0m [90m│[39m
[90m │[39m [90mSpecs:[39m [0m1 found (extract-maestro-video-urls.cy.js)[0m [90m│[39m
[90m │[39m [90mSearched:[39m [0mcypress/e2e/**/*.cy.{js,jsx,ts,tsx}[0m [90m│[39m
[90m └[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m┘[39m
[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m
Running: [90mextract-maestro-video-urls.cy.js[39m [90m(1 of 1)[39m
[0m[0m
[0m Login, collect tests & Save Video URLs[0m
Found 7 usable test link(s). Skipped 0.
[1/7] Visiting: 001_001_invite_users_using_qr_code_or_link_test
[1/7] Captured video for "001_001_invite_users_using_qr_code_or_link_test".
[2/7] Visiting: 001_002_add_user_direct_test
[2/7] Captured video for "001_002_add_user_direct_test".
[3/7] Visiting: 001_003_login_using_school_link_test
[3/7] Captured video for "001_003_login_using_school_link_test".
[4/7] Visiting: 002_001_browse_lessons_test
[4/7] Captured video for "002_001_browse_lessons_test".
[5/7] Visiting: 002_002_browse_demo_app_test
[5/7] Captured video for "002_002_browse_demo_app_test".
[6/7] Visiting: 003_admin_user_assigns_assignment_to_a_class_test
[6/7] Captured video for "003_admin_user_assigns_assignment_to_a_class_test".
[7/7] Visiting: 006_user_send_feedback_test
[7/7] Captured video for "006_user_send_feedback_test".
Wrote 7 video URL(s) to cypress/downloads/video_urls.txt
[32m ✓[0m[90m Login and save video URLs to text file[0m[33m (69163ms)[0m
[92m [0m[32m 1 passing[0m[90m (1m)[0m
[32m ([4m[1mResults[22m[24m)[39m
[90m ┌[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m┐[39m
[90m │[39m [90mTests:[39m [32m1[39m [90m│[39m
[90m │[39m [90mPassing:[39m [32m1[39m [90m│[39m
[90m │[39m [90mFailing:[39m [32m0[39m [90m│[39m
[90m │[39m [90mPending:[39m [32m0[39m [90m│[39m
[90m │[39m [90mSkipped:[39m [32m0[39m [90m│[39m
[90m │[39m [90mScreenshots:[39m [32m8[39m [90m│[39m
[90m │[39m [90mVideo:[39m [32mfalse[39m [90m│[39m
[90m │[39m [90mDuration:[39m [32m1 minute, 9 seconds[39m [90m│[39m
[90m │[39m [90mSpec Ran:[39m [32m[32mextract-maestro-video-urls.cy.js[32m[39m [90m│[39m
[90m └[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m┘[39m
[33m ([4m[1mScreenshots[22m[24m)[39m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x1295)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/00_Main_Dashboard.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x9729)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_users_[0m
[90m [39m [0musing_qr_code_or_link_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x8133)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_002_add_user_dire[0m
[90m [39m [0mct_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x2407)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_003_login_using_s[0m
[90m [39m [0mchool_link_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x5173)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/002_001_browse_lesson[0m
[90m [39m [0ms_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x3223)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/002_002_browse_demo_a[0m
[90m [39m [0mpp_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x8027)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assign[0m
[90m [39m [0ms_assignment_to_a_class_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-offline-endtoend-test/.maestro/video-downl[0m [90m[90m(1000x2351)[90m[39m
[90m [39m [0moader/cypress/screenshots/extract-maestro-video-urls.cy.js/006_user_send_feedbac[0m
[90m [39m [0mk_test.png[0m
[90m====================================================================================================[39m
[0m ([4m[1mRun Finished[22m[24m)[0m
[90m [39m [90mSpec[39m [90mTests[39m [90mPassing[39m [90mFailing[39m [90mPending[39m [90mSkipped[39m [90m [39m
[90m ┌[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m┐[39m
[90m │[39m [32m✔[39m [0mextract-maestro-video-urls.cy.js[0m [90m01:09[39m [0m1[0m [32m1[39m [90m-[39m [90m-[39m [90m-[39m [90m│[39m
[90m └[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m─[39m[90m┘[39m
[90m [39m [32m✔[39m [32mAll specs passed![39m [90m01:09[39m [0m1[0m [32m1[39m [90m-[39m [90m-[39m [90m-[39m [90m [39m
Cypress finished successfully.
------------------------------------------------
Video URL file found. Starting downloads...
------------------------------------------------
Downloading: 001_001_invite_users_using_qr_code_or_link_test -> cypress/downloads/001_001_invite_users_using_qr_code_or_link_test_.mp4
Downloading: 001_002_add_user_direct_test -> cypress/downloads/001_002_add_user_direct_test_.mp4
Downloading: 001_003_login_using_school_link_test -> cypress/downloads/001_003_login_using_school_link_test_.mp4
Downloading: 002_001_browse_lessons_test -> cypress/downloads/002_001_browse_lessons_test_.mp4
Downloading: 002_002_browse_demo_app_test -> cypress/downloads/002_002_browse_demo_app_test_.mp4
Downloading: 003_admin_user_assigns_assignment_to_a_class_test -> cypress/downloads/003_admin_user_assigns_assignment_to_a_class_test_.mp4
Downloading: 006_user_send_feedback_test -> cypress/downloads/006_user_send_feedback_test_.mp4
------------------------------------------------
Downloads completed in cypress/downloads
-rw-r--r-- 1 jenkins jenkins 7.7M Aug 11 23:17 cypress/downloads/001_001_invite_users_using_qr_code_or_link_test_.mp4
-rw-r--r-- 1 jenkins jenkins 1.5M Aug 11 23:22 cypress/downloads/001_002_add_user_direct_test_.mp4
-rw-r--r-- 1 jenkins jenkins 1.1M Aug 11 23:17 cypress/downloads/001_003_login_using_school_link_test_.mp4
-rw-r--r-- 1 jenkins jenkins 4.1M Aug 11 23:15 cypress/downloads/002_001_browse_lessons_test_.mp4
-rw-r--r-- 1 jenkins jenkins 2.5M Aug 11 23:24 cypress/downloads/002_002_browse_demo_app_test_.mp4
-rw-r--r-- 1 jenkins jenkins 5.7M Aug 11 23:25 cypress/downloads/003_admin_user_assigns_assignment_to_a_class_test_.mp4
-rw-r--r-- 1 jenkins jenkins 1.1M Aug 11 23:19 cypress/downloads/006_user_send_feedback_test_.mp4
Process completed successfully.
ci-run-e2e-tests: Maestro test completed. Workspaces are in /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/workspace
All databases passed integrity check.
ci-run-e2e-tests: Stopping TestServerController : pid=994064
ci-run-maestro: Archiving test artifacts...
ci-run-maestro: Artifacts zipped to /home/jenkins/.jenkins/workspace/main-offline-endtoend-test/build/ci-e2e/artifacts/EndToEnd_Test_Artifacts_20260811_232649.zip
Build step 'Execute shell' marked build as failure
Archiving artifacts
Recording test results
[Checks API] No suitable checks publisher found.
[Slack Notifications] found #31 as previous completed, non-aborted build
[Slack Notifications] will send OnEveryFailureNotification because build matches and user preferences allow it
Finished: FAILURE