2026-10-04 04:36:21.069 [DefaultDispatcher-worker-2 @call-context#3] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-04 04:36:21.107 [DefaultDispatcher-worker-2 @call-context#3] INFO io.ktor.test - Application started in 0.046 seconds. 2026-10-04 04:36:21.109 [DefaultDispatcher-worker-3 @coroutine#5] INFO io.ktor.test - Responding at http://localhost:80 2026-10-04 04:36:21.109 [DefaultDispatcher-worker-3 @coroutine#5] INFO io.ktor.test - Responding at https://localhost:443 2026-10-04 04:36:21.131 [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-04 04:36:21.212 [DefaultDispatcher-worker-3] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/opds/root.json 2026-10-04 04:36:21.214 [DefaultDispatcher-worker-3] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/opds/root.json 2026-10-04 04:36:21.214 [DefaultDispatcher-worker-3] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/opds/root.json 2026-10-04 04:36:21.218 [DefaultDispatcher-worker-3] 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-04 04:36:21.233 [DefaultDispatcher-worker-3 @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-04 04:36:21.241 [DefaultDispatcher-worker-4] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/opds/math.json 2026-10-04 04:36:21.242 [DefaultDispatcher-worker-4] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/opds/math.json 2026-10-04 04:36:21.242 [DefaultDispatcher-worker-4] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/opds/math.json 2026-10-04 04:36:21.242 [DefaultDispatcher-worker-4] 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-04 04:36:21.272 [DefaultDispatcher-worker-1 @call-context#19] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-04 04:36:21.274 [DefaultDispatcher-worker-1 @call-context#19] INFO io.ktor.test - Application started in 0.002 seconds. 2026-10-04 04:36:21.274 [DefaultDispatcher-worker-3 @coroutine#21] INFO io.ktor.test - Responding at http://localhost:80 2026-10-04 04:36:21.274 [DefaultDispatcher-worker-3 @coroutine#21] INFO io.ktor.test - Responding at https://localhost:443 2026-10-04 04:36:21.275 [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-04 04:36:21.277 [DefaultDispatcher-worker-2] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/empty.json 2026-10-04 04:36:21.278 [DefaultDispatcher-worker-2] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/empty.json 2026-10-04 04:36:21.279 [DefaultDispatcher-worker-2] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/empty.json 2026-10-04 04:36:21.279 [DefaultDispatcher-worker-2] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/empty.json to class kotlinx.io.Source 2026-10-04 04:36:21.284 [DefaultDispatcher-worker-2 @call-context#31] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-04 04:36:21.285 [DefaultDispatcher-worker-2 @call-context#31] INFO io.ktor.test - Application started in 0.001 seconds. 2026-10-04 04:36:21.286 [DefaultDispatcher-worker-5 @coroutine#33] INFO io.ktor.test - Responding at http://localhost:80 2026-10-04 04:36:21.286 [DefaultDispatcher-worker-5 @coroutine#33] INFO io.ktor.test - Responding at https://localhost:443 2026-10-04 04:36:21.287 [DefaultDispatcher-worker-2 @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-04 04:36:21.288 [DefaultDispatcher-worker-6] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/catalog/root.json 2026-10-04 04:36:21.289 [DefaultDispatcher-worker-6] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/catalog/root.json 2026-10-04 04:36:21.289 [DefaultDispatcher-worker-6] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/catalog/root.json 2026-10-04 04:36:21.289 [DefaultDispatcher-worker-6] 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-04 04:36:21.291 [DefaultDispatcher-worker-6 @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-04 04:36:21.293 [DefaultDispatcher-worker-1] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/catalog/math/index.json 2026-10-04 04:36:21.293 [DefaultDispatcher-worker-1] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/catalog/math/index.json 2026-10-04 04:36:21.293 [DefaultDispatcher-worker-1] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/catalog/math/index.json 2026-10-04 04:36:21.294 [DefaultDispatcher-worker-1] 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-04 04:36:21.295 [DefaultDispatcher-worker-1 @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-04 04:36:21.298 [DefaultDispatcher-worker-2] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/catalog/math/geometry.json 2026-10-04 04:36:21.298 [DefaultDispatcher-worker-2] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/catalog/math/geometry.json 2026-10-04 04:36:21.298 [DefaultDispatcher-worker-2] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/catalog/math/geometry.json 2026-10-04 04:36:21.298 [DefaultDispatcher-worker-2] 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-04 04:36:21.304 [DefaultDispatcher-worker-8 @call-context#51] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-04 04:36:21.306 [DefaultDispatcher-worker-8 @call-context#51] INFO io.ktor.test - Application started in 0.002 seconds. 2026-10-04 04:36:21.306 [DefaultDispatcher-worker-6 @coroutine#53] INFO io.ktor.test - Responding at http://localhost:80 2026-10-04 04:36:21.308 [DefaultDispatcher-worker-6 @coroutine#53] INFO io.ktor.test - Responding at https://localhost:443 2026-10-04 04:36:21.309 [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-04 04:36:21.313 [DefaultDispatcher-worker-4] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/root.json 2026-10-04 04:36:21.313 [DefaultDispatcher-worker-4] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/root.json 2026-10-04 04:36:21.313 [DefaultDispatcher-worker-4] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/root.json 2026-10-04 04:36:21.313 [DefaultDispatcher-worker-4] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/root.json to class kotlinx.io.Source 2026-10-04 04:36:21.316 [DefaultDispatcher-worker-4 @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-04 04:36:21.321 [DefaultDispatcher-worker-1] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/a.json 2026-10-04 04:36:21.321 [DefaultDispatcher-worker-1] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/a.json 2026-10-04 04:36:21.321 [DefaultDispatcher-worker-1] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/a.json 2026-10-04 04:36:21.321 [DefaultDispatcher-worker-1] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/a.json to class kotlinx.io.Source 2026-10-04 04:36:21.327 [DefaultDispatcher-worker-2 @call-context#67] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-04 04:36:21.328 [DefaultDispatcher-worker-2 @call-context#67] INFO io.ktor.test - Application started in 0.001 seconds. 2026-10-04 04:36:21.329 [DefaultDispatcher-worker-6 @coroutine#69] INFO io.ktor.test - Responding at http://localhost:80 2026-10-04 04:36:21.329 [DefaultDispatcher-worker-6 @coroutine#69] INFO io.ktor.test - Responding at https://localhost:443 2026-10-04 04:36:21.331 [DefaultDispatcher-worker-5 @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-04 04:36:21.334 [DefaultDispatcher-worker-4] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/feed.json 2026-10-04 04:36:21.335 [DefaultDispatcher-worker-4] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/feed.json 2026-10-04 04:36:21.335 [DefaultDispatcher-worker-4] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/feed.json 2026-10-04 04:36:21.335 [DefaultDispatcher-worker-4] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/feed.json to class kotlinx.io.Source 2026-10-04 04:36:21.341 [DefaultDispatcher-worker-4 @call-context#79] INFO io.ktor.test - No ktor.deployment.watch patterns specified, automatic reload is not active. 2026-10-04 04:36:21.344 [DefaultDispatcher-worker-4 @call-context#79] INFO io.ktor.test - Application started in 0.003 seconds. 2026-10-04 04:36:21.344 [DefaultDispatcher-worker-6 @coroutine#81] INFO io.ktor.test - Responding at http://localhost:80 2026-10-04 04:36:21.345 [DefaultDispatcher-worker-6 @coroutine#81] INFO io.ktor.test - Responding at https://localhost:443 2026-10-04 04:36:21.345 [DefaultDispatcher-worker-4 @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-04 04:36:21.351 [DefaultDispatcher-worker-1] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost/grouped.json 2026-10-04 04:36:21.351 [DefaultDispatcher-worker-1] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost/grouped.json 2026-10-04 04:36:21.351 [DefaultDispatcher-worker-1] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost/grouped.json 2026-10-04 04:36:21.352 [DefaultDispatcher-worker-1] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers response body for http://localhost/grouped.json to class kotlinx.io.Source