This log is too long to show here, 504 KB has been skipped — click to see the complete log
> Task :lib-xapi-ipc-client:extractDeepLinksForAarRelease UP-TO-DATE
> Task :lib-xapi-ipc-client:generateReleaseResources
> Task :lib-xapi-ipc-client:packageReleaseResources
> Task :lib-xapi-ipc-client:processReleaseNavigationResources
> Task :lib-xapi-ipc-client:generateReleaseAssets UP-TO-DATE
> Task :lib-xapi-ipc-client:mergeReleaseAssets
> Task :lib-xapi-ipc-client:parseReleaseLocalResources
> Task :lib-xapi-ipc-client:javaPreCompileRelease
> Task :lib-xapi-ipc-client:prepareReleaseArtProfile UP-TO-DATE
> Task :lib-xapi-ipc-client:processReleaseManifest
> Task :lib-xapi-ipc-client:generateReleaseRFile
> Task :lib-xapi-ipc-client:writeReleaseAarMetadata
> Task :lib-xapi-ipc-client:extractReleaseAnnotations
> Task :lib-xapi-ipc-client:mapReleaseSourceSetPaths
> Task :lib-xapi-core:compileTestKotlinJvm
> Task :lib-util:compileTestKotlinJvm
> Task :lib-xapi-ipc-client:compileReleaseKotlin
> Task :lib-xapi-ipc-client:mergeReleaseResources
> Task :lib-util:compileJvmTestJava NO-SOURCE
> Task :lib-util:jvmTestClasses
> Task :lib-util:jvmTest
> Task :lib-util:allTests
> Task :lib-util:check
> Task :lib-util:build
> Task :lib-xapi-core:compileJvmTestJava NO-SOURCE
> Task :lib-xapi-core:jvmTestClasses
> Task :lib-xapi-core:jvmTest
> Task :lib-xapi-core:allTests
> Task :lib-xapi-core:check
> Task :lib-xapi-core:build
> Task :lib-xapi-ipc-client:compileReleaseJavaWithJavac NO-SOURCE
> Task :lib-xapi-ipc-client:mergeReleaseGeneratedProguardFiles UP-TO-DATE
> Task :lib-xapi-ipc-client:mergeReleaseConsumerProguardFiles
> Task :lib-xapi-ipc-client:processReleaseJavaRes
> Task :lib-xapi-ipc-client:mergeReleaseJavaResource
> Task :lib-shared:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt:41:66 'fun String.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt:29:40 'val pathSegments: List<String>' is deprecated. `pathSegments` is deprecated.
This property will contain an empty path segment at the beginning for URLs with a hostname,
and an empty path segment at the end for the URLs with a trailing slash. If you need to keep this behaviour please
use [rawSegments]. If you only need to access the meaningful parts of the path, consider using [segments] instead.
Please decide if you need [rawSegments] or [segments] explicitly.
> Task :lib-shared:compileKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt:29:40 'val pathSegments: List<String>' is deprecated. `pathSegments` is deprecated.
This property will contain an empty path segment at the beginning for URLs with a hostname,
and an empty path segment at the end for the URLs with a trailing slash. If you need to keep this behaviour please
use [rawSegments]. If you only need to access the meaningful parts of the path, consider using [segments] instead.
Please decide if you need [rawSegments] or [segments] explicitly.
> Task :lib-shared:processAndroidMainJavaRes
> Task :lib-shared:mergeAndroidMainGeneratedProguardFiles UP-TO-DATE
> Task :lib-shared:exportAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-shared:bundleAndroidMainClassesToCompileJar
> Task :lib-shared:bundleAndroidMainClassesToRuntimeJar
> Task :lib-xapi-ipc-client:verifyReleaseResources
> Task :lib-shared:bundleLibRuntimeToDirAndroidMain
> Task :lib-shared:createFullJarAndroidMain
> Task :lib-shared-se:extractAndroidMainAnnotations
> Task :lib-shared:compileJvmMainJava NO-SOURCE
> Task :lib-shared:jvmMainClasses
> Task :lib-shared:mergeAndroidMainJavaResource
> Task :lib-shared-se:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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 :lib-shared:jvmJar
> Task :lib-shared-se:bundleAndroidMainClassesToCompileJar
> Task :lib-shared-se:processAndroidMainJavaRes
> Task :lib-shared-se:mergeAndroidMainGeneratedProguardFiles UP-TO-DATE
> Task :lib-shared-se:exportAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-shared-se:bundleLibRuntimeToDirAndroidMain
> Task :lib-shared-se:bundleAndroidMainClassesToRuntimeJar
> Task :lib-appui-compose:extractAndroidMainAnnotations
> Task :lib-shared-se:createFullJarAndroidMain
> Task :lib-shared-se:mergeAndroidMainJavaResource
> Task :lib-shared:syncAndroidMainLibJars
> Task :lib-shared-se:syncAndroidMainLibJars
> Task :lib-shared-se:bundleAndroidMainLocalLintAar
> Task :lib-shared:bundleAndroidMainLocalLintAar
> Task :lib-shared:mergeAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-shared:bundleAndroidMainAar
> Task :lib-shared:assembleAndroidMain
> Task :lib-shared:assemble
> Task :lib-shared-se:mergeAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-shared-se:bundleAndroidMainAar
> Task :lib-shared-se:assembleAndroidMain
> Task :lib-xapi-ipc-client:syncReleaseLibJars
> Task :lib-xapi-ipc-client:bundleReleaseAar
> Task :lib-xapi-ipc-client:assembleRelease
> Task :lib-xapi-ipc-client:assemble
> Task :lib-xapi-ipc-client:preDebugAndroidTestBuild UP-TO-DATE
> Task :lib-xapi-ipc-client:generateDebugAndroidTestLintModel
> Task :lib-xapi-ipc-client:extractProguardFiles
> Task :lib-xapi-ipc-client:generateDebugLintReportModel
> Task :lib-xapi-ipc-client:preDebugUnitTestBuild UP-TO-DATE
> Task :lib-xapi-ipc-client:generateDebugUnitTestLintModel
> Task :lib-xapi-ipc-client:bundleLibCompileToJarDebug
> Task :lib-xapi-ipc-server:stripDebugDebugSymbols NO-SOURCE
> Task :lib-xapi-ipc-client:javaPreCompileDebugUnitTest
> Task :lib-xapi-ipc-server:stripReleaseDebugSymbols NO-SOURCE
> Task :lib-xapi-ipc-server:copyDebugJniLibsProjectAndLocalJars
> Task :lib-xapi-ipc-server:copyReleaseJniLibsProjectAndLocalJars
> Task :lib-xapi-ipc-client:generateDebugUnitTestStubRFile
> Task :lib-xapi-ipc-server:bundleDebugAar
> Task :lib-xapi-ipc-client:compileDebugUnitTestKotlin NO-SOURCE
> Task :lib-xapi-ipc-client:compileDebugUnitTestJavaWithJavac NO-SOURCE
> Task :lib-xapi-ipc-client:processDebugUnitTestJavaRes NO-SOURCE
> Task :lib-xapi-ipc-client:testDebugUnitTest NO-SOURCE
> Task :lib-xapi-ipc-client:test UP-TO-DATE
> Task :lib-xapi-ipc-server:assembleDebug
> Task :lib-xapi-ipc-client:lintAnalyzeDebugAndroidTest
> Task :lib-xapi-ipc-server:bundleReleaseAar
> Task :lib-xapi-ipc-client:lintAnalyzeDebugUnitTest
> Task :lib-xapi-ipc-server:mergeReleaseResources
> Task :lib-xapi-ipc-server:generateDebugLintReportModel
> Task :lib-xapi-ipc-shared:stripDebugDebugSymbols NO-SOURCE
> Task :lib-xapi-ipc-shared:copyDebugJniLibsProjectAndLocalJars
> Task :lib-xapi-ipc-server:javaPreCompileDebugUnitTest
> Task :lib-xapi-ipc-shared:bundleDebugAar
> Task :lib-xapi-ipc-shared:assembleDebug
> Task :lib-xapi-ipc-shared:stripReleaseDebugSymbols NO-SOURCE
> Task :lib-xapi-ipc-shared:copyReleaseJniLibsProjectAndLocalJars
> Task :lib-xapi-ipc-server:generateDebugUnitTestStubRFile
> Task :lib-xapi-ipc-server:lintReportDebug
> Task :lib-shared-se:compileKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/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-semi-automated-test-end-to-end/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 :lib-xapi-ipc-server:verifyReleaseResources
> Task :lib-xapi-ipc-shared:mergeReleaseResources
> Task :lib-shared-se:compileJvmMainJava NO-SOURCE
> Task :lib-shared-se:jvmMainClasses
> Task :lib-shared-se:jvmJar
> Task :app-cli:compileKotlin
> Task :app-cli:compileJava NO-SOURCE
> Task :app-cli:classes
> Task :app-cli:jar
> Task :app-cli:startScripts
> Task :app-cli:distTar
> Task :app-server:compileKotlin
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt:78:57 'fun String.encodeBase64(): String' is deprecated. Use `Base64.Default.encode()` from the Kotlin standard library.
> Task :app-cli:distZip
> Task :app-cli:assemble
> Task :app-server:compileJava NO-SOURCE
> Task :app-server:classes
> Task :app-server:jar
> Task :lib-xapi-ipc-client:lintAnalyzeDebug
> Task :app-server:startScripts
> Task :lib-test:compileKotlinJvm
> Task :app-server:distTar
> Task :lib-test:compileJvmMainJava NO-SOURCE
> Task :lib-test:jvmMainClasses
> Task :lib-test:jvmJar
> Task :app-cli:compileTestKotlin
> Task :app-server:distZip
> Task :app-cli:compileTestJava NO-SOURCE
> Task :app-cli:testClasses UP-TO-DATE
> Task :lib-appui-compose:compileAndroidMain
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt:186:25 Expression is unused.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:133:33 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:144:56 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedshare/OpdsFeedShareScreen.kt:238:29 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt:412:18 'fun Modifier.menuAnchor(): Modifier' is deprecated. Use overload that takes ExposedDropdownMenuAnchorType and enabled parameters.
> Task :app-cli:test
> Task :app-cli:check
> Task :app-cli:build
> Task :app-server:shadowJar
> Task :lib-appui-compose:processAndroidMainJavaRes
> Task :lib-appui-compose:mergeAndroidMainGeneratedProguardFiles UP-TO-DATE
> Task :lib-appui-compose:exportAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-appui-compose:bundleAndroidMainClassesToCompileJar
> Task :lib-appui-compose:bundleAndroidMainClassesToRuntimeJar
> Task :lib-appui-compose:bundleLibRuntimeToDirAndroidMain
> Task :lib-appui-compose:createFullJarAndroidMain
> Task :lib-appui-compose:mergeAndroidMainJavaResource
> Task :app-server:startShadowScripts
> Task :lib-appui-compose:syncAndroidMainLibJars
> Task :lib-appui-compose:bundleAndroidMainLocalLintAar
> Task :app-server:shadowDistTar
> Task :app-android:compileReleaseKotlin
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/src/main/kotlin/world/respect/AppKoinModule.kt:825:13 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.
> Task :app-android:compileDebugKotlin
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/src/main/kotlin/world/respect/AppKoinModule.kt:825:13 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.
> Task :app-server:shadowDistZip
> Task :app-android:compileDebugJavaWithJavac
> Task :app-android:processDebugJavaRes
> Task :app-android:mergeLibDexDebug
> Task :app-android:dexBuilderDebug
> Task :app-android:mergeProjectDexDebug
> Task :app-android:compileReleaseJavaWithJavac
> Task :app-android:mergeReleaseGeneratedProguardFiles UP-TO-DATE
> Task :app-android:processReleaseJavaRes
> Task :app-android:mergeDebugJavaResource
> Task :app-android:generateReleaseLintVitalReportModel
> Task :app-android:bundleDebugClassesToCompileJar
> Task :app-android:generateDebugLintReportModel
> Task :app-android:generateDebugAndroidTestLintModel
> Task :app-android:generateDebugUnitTestLintModel
> Task :app-android:compileDebugUnitTestKotlin NO-SOURCE
> Task :app-android:compileDebugUnitTestJavaWithJavac NO-SOURCE
> Task :app-android:processDebugUnitTestJavaRes NO-SOURCE
> Task :app-server:assemble
> Task :app-server:compileTestKotlin NO-SOURCE
> Task :app-server:compileTestJava NO-SOURCE
> Task :app-server:testClasses UP-TO-DATE
> Task :app-server:test NO-SOURCE
> Task :app-server:check UP-TO-DATE
> Task :app-server:build
> Task :lib-appui-compose:mergeAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :app-android:bundleDebugClassesToRuntimeJar
> Task :app-android:expandReleaseArtProfileWildcards
> Task :lib-appui-compose:bundleAndroidMainAar
> Task :app-android:testDebugUnitTest NO-SOURCE
> Task :app-android:test UP-TO-DATE
> Task :lib-appui-compose:assembleAndroidMain
> Task :app-android:mergeReleaseJavaResource
> Task :app-android:packageDebug
> Task :app-android:createDebugApkListingFileRedirect
> Task :app-android:assembleDebug
> Task :app-android:lintAnalyzeDebugAndroidTest
> Task :app-android:lintAnalyzeDebugUnitTest
> Task :lib-datalayer-http-client:compileTestKotlinJvm
> Task :lib-datalayer-http-client:compileJvmTestJava NO-SOURCE
> Task :lib-datalayer-http-client:jvmTestClasses
> Task :lib-datalayer-repository:compileTestKotlinJvm
> Task :lib-shared:compileTestKotlinJvm
> Task :app-android:minifyReleaseWithR8
WARNING: /home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/base.jar: R8: Unexpected reference to missing service class: META-INF/services/nl.adaptivity.xmlutil.util.SerializationProvider.
WARNING: /home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/base.jar: R8: Unexpected reference to missing service implementation class in META-INF/services/nl.adaptivity.xmlutil.util.SerializationProvider: nl.adaptivity.xmlutil.serialization.KotlinxSerializationProvider.
WARNING: /home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/base.jar: R8: Unexpected reference to missing service implementation class in META-INF/services/nl.adaptivity.xmlutil.util.SerializationProvider: nl.adaptivity.xmlutil.util.DefaultSerializationProvider.
> Task :app-android:produceReleaseComposeMapping
> Task :app-android:lintVitalAnalyzeRelease
> Task :lib-appui-compose:compileKotlinJvm
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt:186:25 Expression is unused.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-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-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:133:33 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt:144:56 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedshare/OpdsFeedShareScreen.kt:238:29 'typealias MenuAnchorType = ExposedDropdownMenuAnchorType' is deprecated. Renamed to ExposedDropdownMenuAnchorType.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt:412:18 'fun Modifier.menuAnchor(): Modifier' is deprecated. Use overload that takes ExposedDropdownMenuAnchorType and enabled parameters.
w: file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/lib-appui-compose/src/jvmMain/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-semi-automated-test-end-to-end/lib-appui-compose/src/jvmMain/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-semi-automated-test-end-to-end/lib-appui-compose/src/jvmMain/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-semi-automated-test-end-to-end/lib-appui-compose/src/jvmMain/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 :lib-datalayer-http-client:jvmTest
> Task :app-android:reportReleaseComposeMappingErrors
> Task :app-android:lintVitalReportRelease SKIPPED
> Task :app-android:lintVitalRelease SKIPPED
> Task :lib-appui-compose:compileJvmMainJava NO-SOURCE
> Task :lib-appui-compose:jvmMainClasses
> Task :lib-appui-compose:jvmJar
> Task :lib-appui-compose:assemble
> Task :lib-appui-compose:compileTestKotlinJvm NO-SOURCE
> Task :lib-appui-compose:compileJvmTestJava NO-SOURCE
> Task :lib-appui-compose:jvmTestClasses
> Task :lib-appui-compose:jvmTest NO-SOURCE
> Task :lib-appui-compose:allTests NO-SOURCE
> Task :lib-appui-compose:check UP-TO-DATE
> Task :lib-appui-compose:build
> Task :lib-datalayer-http-client:allTests
> Task :lib-datalayer-http-client:check
> Task :lib-datalayer-http-client:build
> Task :lib-datalayer-repository:compileJvmTestJava NO-SOURCE
> Task :lib-datalayer-repository:jvmTestClasses
2026-10-04 04:37:02.896 [Test worker] INFO io.ktor.server.Application - Application started in 0.5 seconds.
2026-10-04 04:37:03.119 [DefaultDispatcher-worker-1 @coroutine#52] INFO io.ktor.server.Application - Responding at http://0.0.0.0:45933
2026-10-04 04:37:03.599 [DefaultDispatcher-worker-1 @coroutine#64] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:45933/resources/index.json
2026-10-04 04:37:03.601 [DefaultDispatcher-worker-1 @coroutine#64] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:45933/resources/index.json.
2026-10-04 04:37:03.972 [eventLoopGroupProxy-4-1 @call-handler#67] 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-10-04 04:37:04.096 [eventLoopGroupProxy-4-1 @call-handler#67] INFO io.ktor.server.Application - 200 OK: GET - /resources/index.json in 151ms
2026-10-04 04:37:04.124 [DefaultDispatcher-worker-1 @coroutine#64] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:45933/resources/index.json
2026-10-04 04:37:04.136 [DefaultDispatcher-worker-1 @coroutine#64] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:45933/resources/index.json
2026-10-04 04:37:04.136 [DefaultDispatcher-worker-1 @coroutine#64] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:45933/resources/index.json
2026-10-04 04:37:04.232 [DefaultDispatcher-worker-1 @coroutine#64] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class world.respect.lib.opds.model.OpdsFeed for http://localhost:45933/resources/index.json.
Loaded in 795 ms
2026-10-04 04:37:04.304 [DefaultDispatcher-worker-3 @coroutine#81] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:45933/resources/index.json
2026-10-04 04:37:04.305 [DefaultDispatcher-worker-3 @coroutine#81] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:45933/resources/index.json.
2026-10-04 04:37:04.316 [eventLoopGroupProxy-4-1 @call-handler#83] 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-10-04 04:37:04.318 [eventLoopGroupProxy-4-1 @call-handler#83] INFO io.ktor.server.Application - 304 Not Modified: GET - /resources/index.json in 5ms
2026-10-04 04:37:04.320 [DefaultDispatcher-worker-3 @coroutine#81] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:45933/resources/index.json
2026-10-04 04:37:04.320 [DefaultDispatcher-worker-3 @coroutine#81] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:45933/resources/index.json
2026-10-04 04:37:04.320 [DefaultDispatcher-worker-3 @coroutine#81] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:45933/resources/index.json
Loaded in 828 ms
2026-10-04 04:37:04.485 [Test worker] INFO io.ktor.server.Application - Application started in 0.003 seconds.
2026-10-04 04:37:04.494 [DefaultDispatcher-worker-3 @coroutine#87] INFO io.ktor.server.Application - Responding at http://0.0.0.0:43249
2026-10-04 04:37:04.562 [Test worker @coroutine#98] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:43249/resources/index.json
2026-10-04 04:37:04.562 [Test worker @coroutine#98] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:43249/resources/index.json.
2026-10-04 04:37:04.579 [eventLoopGroupProxy-7-1 @call-handler#101] 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-10-04 04:37:04.586 [eventLoopGroupProxy-7-1 @call-handler#101] INFO io.ktor.server.Application - 200 OK: GET - /resources/index.json in 7ms
2026-10-04 04:37:04.587 [Test worker @coroutine#98] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:43249/resources/index.json
2026-10-04 04:37:04.587 [Test worker @coroutine#98] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:43249/resources/index.json
2026-10-04 04:37:04.587 [Test worker @coroutine#98] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:43249/resources/index.json
2026-10-04 04:37:04.588 [Test worker @coroutine#98] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class world.respect.lib.opds.model.OpdsFeed for http://localhost:43249/resources/index.json.
2026-10-04 04:37:04.643 [DefaultDispatcher-worker-5 @coroutine#115] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:43249/resources/index.json
2026-10-04 04:37:04.644 [DefaultDispatcher-worker-5 @coroutine#115] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:43249/resources/index.json.
2026-10-04 04:37:04.648 [eventLoopGroupProxy-7-1 @call-handler#117] 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-10-04 04:37:04.649 [eventLoopGroupProxy-7-1 @call-handler#117] INFO io.ktor.server.Application - 304 Not Modified: GET - /resources/index.json in 1ms
2026-10-04 04:37:04.653 [DefaultDispatcher-worker-5 @coroutine#115] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:43249/resources/index.json
2026-10-04 04:37:04.655 [DefaultDispatcher-worker-5 @coroutine#115] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:43249/resources/index.json
2026-10-04 04:37:04.655 [DefaultDispatcher-worker-5 @coroutine#115] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:43249/resources/index.json
2026-10-04 04:37:04.819 [Test worker] INFO io.ktor.server.Application - Application started in 0.001 seconds.
2026-10-04 04:37:04.831 [DefaultDispatcher-worker-5 @coroutine#121] INFO io.ktor.server.Application - Responding at http://0.0.0.0:33255
2026-10-04 04:37:04.863 [Test worker @coroutine#127] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:33255/resources/lesson001.json
2026-10-04 04:37:04.863 [Test worker @coroutine#127] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:33255/resources/lesson001.json.
2026-10-04 04:37:04.891 [eventLoopGroupProxy-10-1 @call-handler#130] 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-10-04 04:37:04.893 [eventLoopGroupProxy-10-1 @call-handler#130] INFO io.ktor.server.Application - 200 OK: GET - /resources/lesson001.json in 2ms
2026-10-04 04:37:04.899 [DefaultDispatcher-worker-6 @coroutine#127] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:33255/resources/lesson001.json
2026-10-04 04:37:04.900 [DefaultDispatcher-worker-6 @coroutine#127] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:33255/resources/lesson001.json
2026-10-04 04:37:04.900 [DefaultDispatcher-worker-6 @coroutine#127] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:33255/resources/lesson001.json
2026-10-04 04:37:04.909 [DefaultDispatcher-worker-6 @coroutine#127] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class kotlinx.serialization.json.JsonObject for http://localhost:33255/resources/lesson001.json.
Loaded in 191 ms
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
> Task :app-android:lintAnalyzeDebug
> Task :lib-datalayer-repository:jvmTest
> Task :lib-datalayer-repository:allTests
> Task :lib-datalayer-repository:check
> Task :lib-datalayer-repository:build
> Task :lib-shared:compileJvmTestJava NO-SOURCE
> Task :lib-shared:jvmTestClasses
> Task :app-android:lintReportDebug
Wrote HTML report to file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/build/reports/lint-results-debug.html
Wrote SARIF report to file:///home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/app-android/build/reports/lint-results-debug.sarif
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
> Task :lib-shared:jvmTest
> Task :app-android:lintDebug
> Task :app-android:lint
> Task :app-android:check
> Task :lib-shared:allTests
> Task :lib-shared:check
> Task :lib-shared:build
> Task :lib-shared-se:assemble
> Task :lib-shared-se:compileTestKotlinJvm NO-SOURCE
> Task :lib-shared-se:compileJvmTestJava NO-SOURCE
> Task :lib-shared-se:jvmTestClasses UP-TO-DATE
> Task :lib-shared-se:jvmTest NO-SOURCE
> Task :lib-shared-se:allTests NO-SOURCE
> Task :lib-shared-se:check UP-TO-DATE
> Task :lib-shared-se:build
> Task :lib-test:assemble
> Task :lib-test:compileTestKotlinJvm NO-SOURCE
> Task :lib-test:compileJvmTestJava NO-SOURCE
> Task :lib-test:jvmTestClasses UP-TO-DATE
> Task :lib-test:jvmTest NO-SOURCE
> Task :lib-test:allTests NO-SOURCE
> Task :lib-test:check UP-TO-DATE
> Task :lib-test:build
> Task :lib-xapi-ipc-server:assembleRelease
> Task :lib-xapi-ipc-server:assemble
> Task :lib-xapi-ipc-server:lintDebug
> Task :lib-xapi-ipc-server:lint
> Task :lib-xapi-ipc-server:compileDebugUnitTestKotlin NO-SOURCE
> Task :lib-xapi-ipc-server:compileDebugUnitTestJavaWithJavac NO-SOURCE
> Task :lib-xapi-ipc-server:processDebugUnitTestJavaRes NO-SOURCE
> Task :lib-xapi-ipc-server:testDebugUnitTest NO-SOURCE
> Task :lib-xapi-ipc-server:test UP-TO-DATE
> Task :lib-xapi-ipc-server:check
> Task :lib-xapi-ipc-server:build
> Task :lib-xapi-ipc-client:lintReportDebug
> Task :lib-xapi-ipc-shared:bundleReleaseAar
> Task :lib-xapi-ipc-client:lintDebug
> Task :lib-xapi-ipc-client:lint
> Task :lib-xapi-ipc-client:check
> Task :lib-xapi-ipc-client:build
> Task :lib-xapi-ipc-shared:generateDebugLintReportModel
> Task :lib-xapi-ipc-shared:javaPreCompileDebugUnitTest
> Task :lib-xapi-ipc-shared:lintReportDebug
> Task :lib-xapi-ipc-shared:generateDebugUnitTestStubRFile
> Task :lib-xapi-ipc-shared:verifyReleaseResources
> Task :lib-xapi-nanohttpd:transformCommonMainDependenciesMetadata
> Task :lib-xapi-ipc-shared:assembleRelease
> Task :lib-xapi-ipc-shared:assemble
> Task :lib-xapi-ipc-shared:lintDebug
> Task :lib-xapi-ipc-shared:lint
> Task :lib-xapi-ipc-shared:compileDebugUnitTestKotlin NO-SOURCE
> Task :lib-xapi-ipc-shared:compileDebugUnitTestJavaWithJavac NO-SOURCE
> Task :lib-xapi-ipc-shared:processDebugUnitTestJavaRes NO-SOURCE
> Task :lib-xapi-ipc-shared:testDebugUnitTest NO-SOURCE
> Task :lib-xapi-ipc-shared:test UP-TO-DATE
> Task :lib-xapi-ipc-shared:check
> Task :lib-xapi-ipc-shared:build
> Task :lib-xapi-nanohttpd:compileCommonMainKotlinMetadata SKIPPED
> Task :lib-xapi-nanohttpd:generateProjectStructureMetadata
> Task :lib-xapi-nanohttpd:metadataCommonMainProcessResources NO-SOURCE
> Task :lib-xapi-nanohttpd:metadataCommonMainClasses UP-TO-DATE
> Task :lib-xapi-nanohttpd:allMetadataJar
> Task :lib-xapi-nanohttpd:mergeAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-xapi-nanohttpd:bundleAndroidMainAar
> Task :lib-xapi-nanohttpd:assembleAndroidMain
> Task :lib-xapi-nanohttpd:jvmProcessResources NO-SOURCE
> Task :lib-xapi-nanohttpd:processJvmMainResources SKIPPED
> Task :lib-xapi-nanohttpd:jvmTestProcessResources NO-SOURCE
> Task :lib-xapi-nanohttpd:processJvmTestResources SKIPPED
> Task :lib-xapi-test:transformCommonMainDependenciesMetadata
> Task :lib-xapi-test:compileCommonMainKotlinMetadata SKIPPED
> Task :lib-xapi-test:generateProjectStructureMetadata
> Task :lib-xapi-test:metadataCommonMainProcessResources NO-SOURCE
> Task :lib-xapi-test:metadataCommonMainClasses UP-TO-DATE
> Task :lib-xapi-test:allMetadataJar
> Task :lib-xapi-test:mergeAndroidMainJniLibFolders
> Task :lib-xapi-test:mergeAndroidMainNativeLibs NO-SOURCE
> Task :lib-xapi-test:generateAndroidMainAssets UP-TO-DATE
> Task :lib-xapi-test:copyAndroidMainJniLibsProjectOnly
> Task :lib-xapi-test:mergeAndroidMainAssets
> Task :lib-xapi-test:mergeAndroidMainGeneratedProguardFiles UP-TO-DATE
> Task :lib-xapi-test:mergeAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-xapi-test:prepareAndroidMainArtProfile UP-TO-DATE
> Task :lib-xapi-test:bundleAndroidMainAar
> Task :lib-xapi-test:assembleAndroidMain
> Task :lib-xapi-test:assemble
> Task :lib-xapi-test:compileTestKotlinJvm NO-SOURCE
> Task :lib-xapi-test:compileJvmTestJava NO-SOURCE
> Task :lib-xapi-test:jvmTestProcessResources NO-SOURCE
> Task :lib-xapi-test:processJvmTestResources SKIPPED
> Task :lib-xapi-test:jvmTestClasses UP-TO-DATE
> Task :lib-xapi-test:jvmTest NO-SOURCE
> Task :lib-xapi-test:allTests NO-SOURCE
> Task :lib-xapi-test:check UP-TO-DATE
> Task :lib-xapi-test:build
> Task :lib-xxhash:mergeAndroidMainConsumerProguardFiles UP-TO-DATE
> Task :lib-xxhash:bundleAndroidMainAar
> Task :lib-xxhash:assembleAndroidMain
> Task :lib-xxhash:assemble
> Task :lib-xxhash:compileTestKotlinJvm NO-SOURCE
> Task :lib-xxhash:compileJvmTestJava NO-SOURCE
> Task :lib-xxhash:jvmTestProcessResources NO-SOURCE
> Task :lib-xxhash:processJvmTestResources SKIPPED
> Task :lib-xxhash:jvmTestClasses UP-TO-DATE
> Task :lib-xxhash:jvmTest NO-SOURCE
> Task :lib-xxhash:allTests NO-SOURCE
> Task :lib-xxhash:check UP-TO-DATE
> Task :lib-xxhash:build
> Task :lib-xapi-nanohttpd:compileKotlinJvm
> Task :lib-xapi-nanohttpd:compileJvmMainJava NO-SOURCE
> Task :lib-xapi-nanohttpd:jvmMainClasses
> Task :lib-xapi-nanohttpd:jvmJar
> Task :lib-xapi-nanohttpd:assemble
> Task :lib-xapi-nanohttpd:compileTestKotlinJvm
> Task :lib-xapi-nanohttpd:compileJvmTestJava NO-SOURCE
> Task :lib-xapi-nanohttpd:jvmTestClasses
> Task :lib-xapi-nanohttpd:jvmTest
> Task :lib-xapi-nanohttpd:allTests
> Task :lib-xapi-nanohttpd:check
> Task :lib-xapi-nanohttpd:build
> Task :app-android:mergeReleaseComposeMapping
> Task :app-android:convertShrunkResourcesToBinaryRelease
> Task :app-android:optimizeReleaseResources
> Task :app-android:compileReleaseArtProfile
> 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-semi-automated-test-end-to-end/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 3m 6s
1528 actionable tasks: 1346 executed, 182 up-to-date
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.6.1/userguide/configuration_cache_enabling.html
Build step 'Invoke Gradle script' changed build result to SUCCESS
[main-semi-automated-test-end-to-end] $ /bin/sh -xe /tmp/jenkins7728509985592152699.sh
+ ./ci-run-e2e-tests.sh cloud
ROOTDIR=/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end 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..04:38:08,946 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.19
04:38:08,948 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - No custom configurators were discovered as a service.
04:38:08,949 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
04:38:08,949 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
04:38:08,965 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
04:38:08,965 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
04:38:08,994 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 16 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
04:38:08,994 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
04:38:08,994 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
04:38:08,997 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
04:38:09,007 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/testservercontroller-0.0.15/lib/testservercontroller-0.0.15.jar!/logback.xml]
04:38:09,013 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@65987993 - URL [jar:file:/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/testservercontroller-0.0.15/lib/testservercontroller-0.0.15.jar!/logback.xml] is not of type file
04:38:09,172 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@71075444 - value "/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs/" substituted for "${logs_dir:-./log/}"
04:38:09,173 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Main configuration file URL: jar:file:/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/testservercontroller-0.0.15/lib/testservercontroller-0.0.15.jar!/logback.xml
04:38:09,174 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - FileWatchList= {}
04:38:09,178 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - URLWatchList= {}
04:38:09,181 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE]
04:38:09,181 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
04:38:09,196 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@71075444 - value "/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs//testservercontroller.log" substituted for "${LOG_DIR}/testservercontroller.log"
04:38:09,205 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@71075444 - value "/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs//testservercontroller.%d{yyyy-MM-dd}.%i.log" substituted for "${LOG_DIR}/testservercontroller.%d{yyyy-MM-dd}.%i.log"
04:38:09,228 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1328718765 - No compression will be used
04:38:09,261 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1328718765 - Will use the pattern /home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs//testservercontroller.%d{yyyy-MM-dd}.%i.log for the active file
04:38:09,261 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - SizeAndTimeBasedFNATP class was renamed as SizeAndTimeBasedFileNamingAndTriggeringPolicy.
04:38:09,331 |-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-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs//testservercontroller.%d{yyyy-MM-dd}.%i.log'.
04:38:09,331 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - Roll-over at midnight.
04:38:09,349 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - Setting initial period to 2026-10-04T00:38:09.348Z
04:38:09,349 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - Direct use of either SizeAndTimeBasedFNATP or SizeAndTimeBasedFileNamingAndTriggeringPolicy
04:38:09,349 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - is deprecated. Please use SizeAndTimeBasedRollingPolicy instead.
04:38:09,349 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6b695b06 - For more information see https://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
04:38:09,353 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
04:38:09,422 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs//testservercontroller.log
04:38:09,424 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/workspace/logs//testservercontroller.log]
04:38:09,425 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to TRACE
04:38:09,425 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to Logger[ROOT]
04:38:09,426 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [org.eclipse.jetty] to INFO
04:38:09,426 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [io.netty] to INFO
04:38:09,426 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@4d1bf319 - End of configuration.
04:38:09,426 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6f53b8a - Registering current configuration as safe fallback point
04:38:09,426 |-INFO in ch.qos.logback.classic.util.ContextInitializer@6c4906d3 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 432 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY
...
Connected!
ci-run-e2e-tests: TestServerController now running on port 8070 (pid 1884395)
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_01m425hsktfacahdrktwm8jmm4
App binary id: e77d4a9a9b87ab3254c59f1ab7aee4f58ec1bc27
Waiting for runs to be completed...
https://8063.ustadtesting.ustadmobile.com/api/directory/school ready
https://8061.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 002_001_browse_lessons_test (4m 3.591s)
https://8062.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 001_003_login_using_school_link_test (2m 31.647s)
[Passed] 001_001_invite_users_using_qr_code_or_link_test (6m 36.899s)
https://8063.ustadtesting.ustadmobile.com/api/directory/school ready
https://8060.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 006_user_send_feedback_test (1m 52.709s)
https://8066.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 003_admin_user_assigns_assignment_to_a_class_test (12m 17.74s)
[Passed] 001_002_add_user_direct_test (10m 52.621s)
https://8060.ustadtesting.ustadmobile.com/api/directory/school ready
[Passed] 002_002_browse_demo_app_test (2m 33.268s)
7/7 Flows Passed
==== View Details on Maestro Cloud ====
https://app.maestro.dev/project/proj_01k6wzp0pwf75vpcw8vw1gh0y8/maestro-test/app/app_01k6x3hyf9exztk0022nehadkk/upload/mupload_01m425hsktfacahdrktwm8jmm4
Process will exit with code 0 (SUCCESS)
ci-run-e2e-tests: Cloud run finished (Status: 0). Extracting URL..
ci-run-e2e-tests: Found URL: https://app.maestro.dev/project/proj_01k6wzp0pwf75vpcw8vw1gh0y8/maestro-test/app/app_01k6x3hyf9exztk0022nehadkk/upload/mupload_01m425hsktfacahdrktwm8jmm4
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_01m425hsktfacahdrktwm8jmm4
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 154 [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 (71759ms)[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, 11 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-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x1199)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/00_Main_Dash[0m
[90m [39m [0mboard.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x9985)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invi[0m
[90m [39m [0mte_users_using_qr_code_or_link_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x12329)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_002_add_[0m
[90m [39m [0muser_direct_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x2471)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_003_logi[0m
[90m [39m [0mn_using_school_link_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x5237)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/002_001_brow[0m
[90m [39m [0mse_lessons_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x3287)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/002_002_brow[0m
[90m [39m [0mse_demo_app_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x16491)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_us[0m
[90m [39m [0mer_assigns_assignment_to_a_class_test.png[0m
[90m [39m - [0m/home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/.maestro/vi[0m [90m[90m(1000x2415)[90m[39m
[90m [39m [0mdeo-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/006_user_sen[0m
[90m [39m [0md_feedback_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:11[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:11[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.6M Oct 4 04:44 cypress/downloads/001_001_invite_users_using_qr_code_or_link_test_.mp4
-rw-r--r-- 1 jenkins jenkins 15M Oct 4 04:57 cypress/downloads/001_002_add_user_direct_test_.mp4
-rw-r--r-- 1 jenkins jenkins 1.3M Oct 4 04:44 cypress/downloads/001_003_login_using_school_link_test_.mp4
-rw-r--r-- 1 jenkins jenkins 4.0M Oct 4 04:42 cypress/downloads/002_001_browse_lessons_test_.mp4
-rw-r--r-- 1 jenkins jenkins 2.5M Oct 4 04:59 cypress/downloads/002_002_browse_demo_app_test_.mp4
-rw-r--r-- 1 jenkins jenkins 13M Oct 4 04:57 cypress/downloads/003_admin_user_assigns_assignment_to_a_class_test_.mp4
-rw-r--r-- 1 jenkins jenkins 1.2M Oct 4 04:46 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-semi-automated-test-end-to-end/build/ci-e2e/workspace
All databases passed integrity check.
ci-run-e2e-tests: Stopping TestServerController : pid=1884395
ci-run-maestro: Archiving test artifacts...
ci-run-maestro: Artifacts zipped to /home/jenkins/.jenkins/workspace/main-semi-automated-test-end-to-end/build/ci-e2e/artifacts/EndToEnd_Test_Artifacts_20261004_050123.zip
Archiving artifacts
Recording test results
[Checks API] No suitable checks publisher found.
[Slack Notifications] found #1 as previous completed, non-aborted build
Finished: SUCCESS