2026-10-03 23:05:14.338 [DefaultDispatcher-worker-2 @call-context#3] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-03 23:05:14.365 [DefaultDispatcher-worker-2 @call-context#3] INFO io.ktor.test - Application started in 0.033 seconds. 2026-10-03 23:05:14.366 [DefaultDispatcher-worker-3 @coroutine#5] INFO io.ktor.test - Responding at http://localhost:80 2026-10-03 23:05:14.366 [DefaultDispatcher-worker-3 @coroutine#5] INFO io.ktor.test - Responding at https://localhost:443 2026-10-03 23:05:14.383 [DefaultDispatcher-worker-2 @request#3] TRACE io.ktor.server.routing.Routing - Trace for [opds, root.json] /, segment:0 -> SUCCESS @ / /opds, segment:1 -> SUCCESS @ /opds /opds/root.json, segment:2 -> SUCCESS @ /opds/root.json /opds/root.json [(method:GET)], segment:2 -> SUCCESS @ /opds/root.json [(method:GET)] /opds/math.json, segment:1 -> FAILURE "Selector didn't match" @ /opds/math.json Matched routes: "" -> "opds" -> "root.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /opds/root.json [(method:GET)] 2026-10-03 23:05:14.434 [DefaultDispatcher-worker-5] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/opds/root.json 2026-10-03 23:05:14.436 [DefaultDispatcher-worker-5] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/opds/root.json 2026-10-03 23:05:14.436 [DefaultDispatcher-worker-5] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/opds/root.json 2026-10-03 23:05:14.440 [DefaultDispatcher-worker-5] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/opds/root.json to class kotlinx.io.Source 2026-10-03 23:05:14.453 [DefaultDispatcher-worker-5 @request#12] TRACE io.ktor.server.routing.Routing - Trace for [opds, math.json] /, segment:0 -> SUCCESS @ / /opds, segment:1 -> SUCCESS @ /opds /opds/root.json, segment:1 -> FAILURE "Selector didn't match" @ /opds/root.json /opds/math.json, segment:2 -> SUCCESS @ /opds/math.json /opds/math.json [(method:GET)], segment:2 -> SUCCESS @ /opds/math.json [(method:GET)] Matched routes: "" -> "opds" -> "math.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /opds/math.json [(method:GET)] 2026-10-03 23:05:14.459 [DefaultDispatcher-worker-1] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/opds/math.json 2026-10-03 23:05:14.460 [DefaultDispatcher-worker-1] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/opds/math.json 2026-10-03 23:05:14.460 [DefaultDispatcher-worker-1] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/opds/math.json 2026-10-03 23:05:14.460 [DefaultDispatcher-worker-1] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/opds/math.json to class kotlinx.io.Source 2026-10-03 23:05:14.475 [DefaultDispatcher-worker-3 @call-context#19] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-03 23:05:14.476 [DefaultDispatcher-worker-3 @call-context#19] INFO io.ktor.test - Application started in 0.001 seconds. 2026-10-03 23:05:14.476 [DefaultDispatcher-worker-1 @coroutine#21] INFO io.ktor.test - Responding at http://localhost:80 2026-10-03 23:05:14.476 [DefaultDispatcher-worker-1 @coroutine#21] INFO io.ktor.test - Responding at https://localhost:443 2026-10-03 23:05:14.477 [DefaultDispatcher-worker-3 @request#19] TRACE io.ktor.server.routing.Routing - Trace for [empty.json] /, segment:0 -> SUCCESS @ / /empty.json, segment:1 -> SUCCESS @ /empty.json /empty.json [(method:GET)], segment:1 -> SUCCESS @ /empty.json [(method:GET)] Matched routes: "" -> "empty.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /empty.json [(method:GET)] 2026-10-03 23:05:14.479 [DefaultDispatcher-worker-6] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/empty.json 2026-10-03 23:05:14.479 [DefaultDispatcher-worker-6] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/empty.json 2026-10-03 23:05:14.479 [DefaultDispatcher-worker-6] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/empty.json 2026-10-03 23:05:14.479 [DefaultDispatcher-worker-6] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/empty.json to class kotlinx.io.Source 2026-10-03 23:05:14.483 [DefaultDispatcher-worker-3 @call-context#31] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-03 23:05:14.484 [DefaultDispatcher-worker-3 @call-context#31] INFO io.ktor.test - Application started in 0.001 seconds. 2026-10-03 23:05:14.484 [DefaultDispatcher-worker-6 @coroutine#33] INFO io.ktor.test - Responding at http://localhost:80 2026-10-03 23:05:14.484 [DefaultDispatcher-worker-6 @coroutine#33] INFO io.ktor.test - Responding at https://localhost:443 2026-10-03 23:05:14.485 [DefaultDispatcher-worker-3 @request#31] TRACE io.ktor.server.routing.Routing - Trace for [catalog, root.json] /, segment:0 -> SUCCESS @ / /catalog, segment:1 -> SUCCESS @ /catalog /catalog/root.json, segment:2 -> SUCCESS @ /catalog/root.json /catalog/root.json [(method:GET)], segment:2 -> SUCCESS @ /catalog/root.json [(method:GET)] /catalog/math, segment:1 -> FAILURE "Selector didn't match" @ /catalog/math Matched routes: "" -> "catalog" -> "root.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /catalog/root.json [(method:GET)] 2026-10-03 23:05:14.486 [DefaultDispatcher-worker-7] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/catalog/root.json 2026-10-03 23:05:14.486 [DefaultDispatcher-worker-7] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/catalog/root.json 2026-10-03 23:05:14.487 [DefaultDispatcher-worker-7] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/catalog/root.json 2026-10-03 23:05:14.487 [DefaultDispatcher-worker-7] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/catalog/root.json to class kotlinx.io.Source 2026-10-03 23:05:14.488 [DefaultDispatcher-worker-7 @request#40] TRACE io.ktor.server.routing.Routing - Trace for [catalog, math, index.json] /, segment:0 -> SUCCESS @ / /catalog, segment:1 -> SUCCESS @ /catalog /catalog/root.json, segment:1 -> FAILURE "Selector didn't match" @ /catalog/root.json /catalog/math, segment:2 -> SUCCESS @ /catalog/math /catalog/math/index.json, segment:3 -> SUCCESS @ /catalog/math/index.json /catalog/math/index.json [(method:GET)], segment:3 -> SUCCESS @ /catalog/math/index.json [(method:GET)] /catalog/math/geometry.json, segment:2 -> FAILURE "Selector didn't match" @ /catalog/math/geometry.json Matched routes: "" -> "catalog" -> "math" -> "index.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /catalog/math/index.json [(method:GET)] 2026-10-03 23:05:14.489 [DefaultDispatcher-worker-3] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/catalog/math/index.json 2026-10-03 23:05:14.489 [DefaultDispatcher-worker-3] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/catalog/math/index.json 2026-10-03 23:05:14.489 [DefaultDispatcher-worker-3] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/catalog/math/index.json 2026-10-03 23:05:14.489 [DefaultDispatcher-worker-3] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/catalog/math/index.json to class kotlinx.io.Source 2026-10-03 23:05:14.491 [DefaultDispatcher-worker-3 @request#44] TRACE io.ktor.server.routing.Routing - Trace for [catalog, math, geometry.json] /, segment:0 -> SUCCESS @ / /catalog, segment:1 -> SUCCESS @ /catalog /catalog/root.json, segment:1 -> FAILURE "Selector didn't match" @ /catalog/root.json /catalog/math, segment:2 -> SUCCESS @ /catalog/math /catalog/math/index.json, segment:2 -> FAILURE "Selector didn't match" @ /catalog/math/index.json /catalog/math/geometry.json, segment:3 -> SUCCESS @ /catalog/math/geometry.json /catalog/math/geometry.json [(method:GET)], segment:3 -> SUCCESS @ /catalog/math/geometry.json [(method:GET)] Matched routes: "" -> "catalog" -> "math" -> "geometry.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /catalog/math/geometry.json [(method:GET)] 2026-10-03 23:05:14.492 [DefaultDispatcher-worker-1] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/catalog/math/geometry.json 2026-10-03 23:05:14.492 [DefaultDispatcher-worker-1] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/catalog/math/geometry.json 2026-10-03 23:05:14.492 [DefaultDispatcher-worker-1] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/catalog/math/geometry.json 2026-10-03 23:05:14.492 [DefaultDispatcher-worker-1] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/catalog/math/geometry.json to class kotlinx.io.Source 2026-10-03 23:05:14.496 [DefaultDispatcher-worker-5 @call-context#51] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-03 23:05:14.498 [DefaultDispatcher-worker-5 @call-context#51] INFO io.ktor.test - Application started in 0.002 seconds. 2026-10-03 23:05:14.498 [DefaultDispatcher-worker-1 @coroutine#53] INFO io.ktor.test - Responding at http://localhost:80 2026-10-03 23:05:14.498 [DefaultDispatcher-worker-1 @coroutine#53] INFO io.ktor.test - Responding at https://localhost:443 2026-10-03 23:05:14.499 [DefaultDispatcher-worker-5 @request#51] TRACE io.ktor.server.routing.Routing - Trace for [root.json] /, segment:0 -> SUCCESS @ / /root.json, segment:1 -> SUCCESS @ /root.json /root.json [(method:GET)], segment:1 -> SUCCESS @ /root.json [(method:GET)] /a.json, segment:0 -> FAILURE "Selector didn't match" @ /a.json /b.json, segment:0 -> FAILURE "Selector didn't match" @ /b.json Matched routes: "" -> "root.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /root.json [(method:GET)] 2026-10-03 23:05:14.500 [DefaultDispatcher-worker-6] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/root.json 2026-10-03 23:05:14.501 [DefaultDispatcher-worker-6] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/root.json 2026-10-03 23:05:14.501 [DefaultDispatcher-worker-6] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/root.json 2026-10-03 23:05:14.501 [DefaultDispatcher-worker-6] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/root.json to class kotlinx.io.Source 2026-10-03 23:05:14.502 [DefaultDispatcher-worker-6 @request#60] TRACE io.ktor.server.routing.Routing - Trace for [a.json] /, segment:0 -> SUCCESS @ / /root.json, segment:0 -> FAILURE "Selector didn't match" @ /root.json /a.json, segment:1 -> SUCCESS @ /a.json /a.json [(method:GET)], segment:1 -> SUCCESS @ /a.json [(method:GET)] /b.json, segment:0 -> FAILURE "Selector didn't match" @ /b.json Matched routes: "" -> "a.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /a.json [(method:GET)] 2026-10-03 23:05:14.503 [DefaultDispatcher-worker-3] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/a.json 2026-10-03 23:05:14.503 [DefaultDispatcher-worker-3] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/a.json 2026-10-03 23:05:14.503 [DefaultDispatcher-worker-3] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/a.json 2026-10-03 23:05:14.504 [DefaultDispatcher-worker-3] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/a.json to class kotlinx.io.Source 2026-10-03 23:05:14.507 [DefaultDispatcher-worker-5 @call-context#67] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-03 23:05:14.509 [DefaultDispatcher-worker-5 @call-context#67] INFO io.ktor.test - Application started in 0.002 seconds. 2026-10-03 23:05:14.509 [DefaultDispatcher-worker-3 @coroutine#69] INFO io.ktor.test - Responding at http://localhost:80 2026-10-03 23:05:14.509 [DefaultDispatcher-worker-3 @coroutine#69] INFO io.ktor.test - Responding at https://localhost:443 2026-10-03 23:05:14.509 [DefaultDispatcher-worker-6 @request#67] TRACE io.ktor.server.routing.Routing - Trace for [feed.json] /, segment:0 -> SUCCESS @ / /feed.json, segment:1 -> SUCCESS @ /feed.json /feed.json [(method:GET)], segment:1 -> SUCCESS @ /feed.json [(method:GET)] Matched routes: "" -> "feed.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /feed.json [(method:GET)] 2026-10-03 23:05:14.511 [DefaultDispatcher-worker-3] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/feed.json 2026-10-03 23:05:14.511 [DefaultDispatcher-worker-3] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/feed.json 2026-10-03 23:05:14.511 [DefaultDispatcher-worker-3] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/feed.json 2026-10-03 23:05:14.512 [DefaultDispatcher-worker-3] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/feed.json to class kotlinx.io.Source 2026-10-03 23:05:14.515 [DefaultDispatcher-worker-3 @call-context#79] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-03 23:05:14.515 [DefaultDispatcher-worker-3 @call-context#79] INFO io.ktor.test - Application started in 0.001 seconds. 2026-10-03 23:05:14.516 [DefaultDispatcher-worker-5 @coroutine#81] INFO io.ktor.test - Responding at http://localhost:80 2026-10-03 23:05:14.516 [DefaultDispatcher-worker-5 @coroutine#81] INFO io.ktor.test - Responding at https://localhost:443 2026-10-03 23:05:14.516 [DefaultDispatcher-worker-3 @request#79] TRACE io.ktor.server.routing.Routing - Trace for [grouped.json] /, segment:0 -> SUCCESS @ / /grouped.json, segment:1 -> SUCCESS @ /grouped.json /grouped.json [(method:GET)], segment:1 -> SUCCESS @ /grouped.json [(method:GET)] Matched routes: "" -> "grouped.json" -> "(method:GET)" Routing resolve result: SUCCESS @ /grouped.json [(method:GET)] 2026-10-03 23:05:14.518 [DefaultDispatcher-worker-7] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/grouped.json 2026-10-03 23:05:14.518 [DefaultDispatcher-worker-7] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/grouped.json 2026-10-03 23:05:14.518 [DefaultDispatcher-worker-7] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/grouped.json 2026-10-03 23:05:14.518 [DefaultDispatcher-worker-7] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/grouped.json to class kotlinx.io.Source