{ "date": "2026-10-16", "scope": "Local backend fix plus read-only verification against production JH; no application deployment or RouterOS configuration writes", "causes": [ "RouterOS list omitted disabled and check-gateway; strict catalog parser returned 503", "The page loaded full 12k-25k routing tables; an observed 8-second read approached the 10-second timeout" ], "nativeObservations": { "disabledGet": { "ret": "false" }, "unsetCheckGatewayGet": [], "configurationWrites": 0 }, "fix": { "routeList": "POST /ip/route/print with .query=[comment]; includes all ownership markers and unsupported commented rows", "gatewayList": "GET /ip/route with .proplist=.id,gateway,active; retains all routes", "missingProperties": "Read disabled/check-gateway via /ip/route/get only for owned rows with absent fields", "maximumPropertyConcurrency": 2, "emptySuccessfulCheckGet": "none", "malformedAndFailedReads": "rejected, no successful empty snapshot or cache update" }, "readOnlyVerification": [ { "serverId": 2, "fullRows": 12441, "fullReadMs": 2394, "commentedRows": 12, "commentedReadMs": 500, "parsedOwnedRows": 4, "effectivePropertyReads": 7, "combinedReadAndParseMs": 1026 }, { "serverId": 3, "fullRows": 24864, "fullReadMs": 7986, "commentedRows": 13, "commentedReadMs": 1697, "parsedOwnedRows": 3, "effectivePropertyReads": 4, "combinedReadAndParseMs": 3225 }, { "serverId": 4, "fullRows": 12451, "fullReadMs": 2106, "commentedRows": 7, "commentedReadMs": 488, "parsedOwnedRows": 5, "effectivePropertyReads": 3, "combinedReadAndParseMs": 643 } ], "checks": { "recursiveBackendProfile": "4 scripts passed, including new effective-property tests and HTTP failure/no-cache coverage", "routerOsHttpClient": "11 tests passed, including native query array serialization", "recursivePageE2E": "15 passed", "backendBuild": "passed", "scopedEslint": "passed", "gitDiffCheck": "passed" }, "limitations": [ "Read-only native checks, not acceptance of a deployed HTTP/UI fix", "One-off timings; gateway inventory remains a separate request and is not included in combinedReadAndParseMs", "No broader timeout/connection-pool redesign or changes to native route application rules", "Existing cache ID replacement behavior remains separate from this fix" ], "sources": [ "https://manual.mikrotik.com/docs/developer-guides/rest-api/", "https://manual.mikrotik.com/docs/cli-reference/ip/route/" ] }