[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openshift-route-ingress-troubleshooting":3,"mdc-xboi3h-key":35,"related-org-openshift-route-ingress-troubleshooting":474,"related-repo-openshift-route-ingress-troubleshooting":586},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"route-ingress-troubleshooting","troubleshoot OpenShift Route and Ingress connectivity","Troubleshoot Route or Ingress connectivity failures. Use when traffic returns 502, 503, connection refused, or the endpoint is not reachable externally.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openshift","OpenShift (Red Hat)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenshift.png",[12,16,19,21],{"name":13,"slug":14,"type":15},"SRE","sre","tag",{"name":17,"slug":18,"type":15},"Networking","networking",{"name":20,"slug":8,"type":15},"OpenShift",{"name":22,"slug":23,"type":15},"Debugging","debugging",70,"https:\u002F\u002Fgithub.com\u002Fopenshift\u002Flightspeed-service","2026-04-06T18:43:31.593028",null,88,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Core repository for an AI-powered OCP assistant service","https:\u002F\u002Fgithub.com\u002Fopenshift\u002Flightspeed-service\u002Ftree\u002FHEAD\u002Fskills\u002Froute-ingress-troubleshooting","---\nname: route-ingress-troubleshooting\ndescription: Troubleshoot Route or Ingress connectivity failures. Use when traffic returns 502, 503, connection refused, or the endpoint is not reachable externally.\n---\n\n# Route and Ingress Troubleshooting\n\nWhen a user reports that their application URL returns errors (503, connection refused, TLS errors) or is completely unreachable, follow this structured approach to trace the request path and identify the broken layer.\n\n## 1. Verify the Route Exists and Is Admitted\n\nCheck the Route object first:\n\n1. Confirm the Route exists in the expected namespace.\n2. Check the Route's status — is it `Admitted` by the ingress controller? If not admitted, the ingress controller has rejected it. Check the rejection reason (conflicting hostname, invalid TLS config, etc.).\n3. Verify the hostname — does it match what the user is trying to reach? Typos in the hostname are common.\n4. If using a custom domain: confirm DNS resolves to the cluster's ingress VIP or load balancer.\n\nDo not proceed to service\u002Fendpoint debugging until the Route itself is confirmed as Admitted.\n\n## 2. Verify the Target Service\n\nCheck that the Route points to a valid Service:\n\n1. Confirm the Service named in the Route's `spec.to` exists in the same namespace.\n2. Check the Service's `selector` — does it match the labels on the running pods?\n3. Check the Service's `targetPort` — does it match the port the application is actually listening on inside the container?\n\nIf the Route references a Service that does not exist, that is the root cause. If the Service exists but has the wrong selector or port, report the specific mismatch.\n\n## 3. Check Endpoints\n\nVerify that the Service has backend pod IPs:\n\n1. Check the Endpoints object for the Service — are there IP addresses listed?\n2. If **endpoints are empty**: the Service selector does not match any **running and ready** pods. Report the exact selector and the labels on available pods so the user can see the mismatch.\n3. If **endpoints exist but the application returns 503**: the pods are registered but may be failing readiness probes. Check the pod readiness probe configuration and recent probe failure events.\n\nEmpty endpoints are the most common cause of 503 errors on Routes. Always check this before investigating the ingress controller.\n\n## 4. Verify Pod Readiness\n\nIf endpoints exist but the application is still unreachable:\n\n1. Check if the pods are `Ready` (all readiness probes passing).\n2. If pods are not ready: check which readiness probe is failing and why (wrong path, wrong port, application not fully started).\n3. Verify the container is listening on the expected port — a mismatch between the declared containerPort and the actual listening port causes silent failures.\n4. If pods are ready and the port is correct: the issue may be application-level (the app returns errors for the specific request path).\n\n## 5. Diagnose TLS Issues\n\nIf the error is TLS-related (certificate errors, HTTPS not working):\n\n1. Identify the Route's TLS termination type: **edge**, **reencrypt**, or **passthrough**.\n2. For **edge** termination:\n   - The ingress controller terminates TLS. Check if the Route has a custom certificate or uses the default wildcard certificate.\n   - If custom certificate: verify the certificate matches the hostname and is not expired.\n3. For **reencrypt** termination:\n   - The ingress controller terminates and re-encrypts to the backend. Check the `destinationCACertificate` — it must trust the backend pod's certificate.\n   - Verify the backend pod is serving TLS on the target port.\n4. For **passthrough** termination:\n   - TLS is terminated by the application pod. The ingress controller does not inspect the certificate.\n   - Verify the pod is serving valid TLS on the expected port.\n\nReport which TLS layer has the issue — do not suggest regenerating all certificates when only one is wrong.\n\n## 6. Check the Ingress Controller\n\nIf the Route is Admitted, the Service has endpoints, pods are ready, and TLS is correct, the issue may be at the ingress controller level:\n\n1. Check the IngressController\u002Frouter pods in `openshift-ingress` — are they running and ready?\n2. Check the IngressController's status conditions for errors.\n3. If using a non-default IngressController: verify the Route is exposed by the correct one (check `routeSelector` and `namespaceSelector`).\n\nIngress controller issues are rare compared to Service\u002FEndpoint issues. Only investigate here after ruling out the common causes.\n\n## Quality Standards\n\n- Always trace the full chain: Route → Service → Endpoints → Pod. Do not skip layers — report which specific layer is broken.\n- Report the exact selector mismatch if endpoints are empty — show both the Service selector and the pod labels side by side.\n- For TLS issues: specify which termination type is in use and which side has the problem. Generic \"check your certificates\" is not helpful.\n- Do not suggest creating a new Route if the existing one has a fixable misconfiguration. Fix what exists first.\n- If the issue is application-level (the app itself returns errors), say so clearly rather than continuing to troubleshoot infrastructure.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,55,62,67,101,106,112,117,158,163,169,174,213,218,224,229,260,266,271,377,382,388,393,435,440,446],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"route-and-ingress-troubleshooting",[46],{"type":47,"value":48},"text","Route and Ingress Troubleshooting",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"When a user reports that their application URL returns errors (503, connection refused, TLS errors) or is completely unreachable, follow this structured approach to trace the request path and identify the broken layer.",{"type":41,"tag":56,"props":57,"children":59},"h2",{"id":58},"_1-verify-the-route-exists-and-is-admitted",[60],{"type":47,"value":61},"1. Verify the Route Exists and Is Admitted",{"type":41,"tag":50,"props":63,"children":64},{},[65],{"type":47,"value":66},"Check the Route object first:",{"type":41,"tag":68,"props":69,"children":70},"ol",{},[71,77,91,96],{"type":41,"tag":72,"props":73,"children":74},"li",{},[75],{"type":47,"value":76},"Confirm the Route exists in the expected namespace.",{"type":41,"tag":72,"props":78,"children":79},{},[80,82,89],{"type":47,"value":81},"Check the Route's status — is it ",{"type":41,"tag":83,"props":84,"children":86},"code",{"className":85},[],[87],{"type":47,"value":88},"Admitted",{"type":47,"value":90}," by the ingress controller? If not admitted, the ingress controller has rejected it. Check the rejection reason (conflicting hostname, invalid TLS config, etc.).",{"type":41,"tag":72,"props":92,"children":93},{},[94],{"type":47,"value":95},"Verify the hostname — does it match what the user is trying to reach? Typos in the hostname are common.",{"type":41,"tag":72,"props":97,"children":98},{},[99],{"type":47,"value":100},"If using a custom domain: confirm DNS resolves to the cluster's ingress VIP or load balancer.",{"type":41,"tag":50,"props":102,"children":103},{},[104],{"type":47,"value":105},"Do not proceed to service\u002Fendpoint debugging until the Route itself is confirmed as Admitted.",{"type":41,"tag":56,"props":107,"children":109},{"id":108},"_2-verify-the-target-service",[110],{"type":47,"value":111},"2. Verify the Target Service",{"type":41,"tag":50,"props":113,"children":114},{},[115],{"type":47,"value":116},"Check that the Route points to a valid Service:",{"type":41,"tag":68,"props":118,"children":119},{},[120,133,146],{"type":41,"tag":72,"props":121,"children":122},{},[123,125,131],{"type":47,"value":124},"Confirm the Service named in the Route's ",{"type":41,"tag":83,"props":126,"children":128},{"className":127},[],[129],{"type":47,"value":130},"spec.to",{"type":47,"value":132}," exists in the same namespace.",{"type":41,"tag":72,"props":134,"children":135},{},[136,138,144],{"type":47,"value":137},"Check the Service's ",{"type":41,"tag":83,"props":139,"children":141},{"className":140},[],[142],{"type":47,"value":143},"selector",{"type":47,"value":145}," — does it match the labels on the running pods?",{"type":41,"tag":72,"props":147,"children":148},{},[149,150,156],{"type":47,"value":137},{"type":41,"tag":83,"props":151,"children":153},{"className":152},[],[154],{"type":47,"value":155},"targetPort",{"type":47,"value":157}," — does it match the port the application is actually listening on inside the container?",{"type":41,"tag":50,"props":159,"children":160},{},[161],{"type":47,"value":162},"If the Route references a Service that does not exist, that is the root cause. If the Service exists but has the wrong selector or port, report the specific mismatch.",{"type":41,"tag":56,"props":164,"children":166},{"id":165},"_3-check-endpoints",[167],{"type":47,"value":168},"3. Check Endpoints",{"type":41,"tag":50,"props":170,"children":171},{},[172],{"type":47,"value":173},"Verify that the Service has backend pod IPs:",{"type":41,"tag":68,"props":175,"children":176},{},[177,182,202],{"type":41,"tag":72,"props":178,"children":179},{},[180],{"type":47,"value":181},"Check the Endpoints object for the Service — are there IP addresses listed?",{"type":41,"tag":72,"props":183,"children":184},{},[185,187,193,195,200],{"type":47,"value":186},"If ",{"type":41,"tag":188,"props":189,"children":190},"strong",{},[191],{"type":47,"value":192},"endpoints are empty",{"type":47,"value":194},": the Service selector does not match any ",{"type":41,"tag":188,"props":196,"children":197},{},[198],{"type":47,"value":199},"running and ready",{"type":47,"value":201}," pods. Report the exact selector and the labels on available pods so the user can see the mismatch.",{"type":41,"tag":72,"props":203,"children":204},{},[205,206,211],{"type":47,"value":186},{"type":41,"tag":188,"props":207,"children":208},{},[209],{"type":47,"value":210},"endpoints exist but the application returns 503",{"type":47,"value":212},": the pods are registered but may be failing readiness probes. Check the pod readiness probe configuration and recent probe failure events.",{"type":41,"tag":50,"props":214,"children":215},{},[216],{"type":47,"value":217},"Empty endpoints are the most common cause of 503 errors on Routes. Always check this before investigating the ingress controller.",{"type":41,"tag":56,"props":219,"children":221},{"id":220},"_4-verify-pod-readiness",[222],{"type":47,"value":223},"4. Verify Pod Readiness",{"type":41,"tag":50,"props":225,"children":226},{},[227],{"type":47,"value":228},"If endpoints exist but the application is still unreachable:",{"type":41,"tag":68,"props":230,"children":231},{},[232,245,250,255],{"type":41,"tag":72,"props":233,"children":234},{},[235,237,243],{"type":47,"value":236},"Check if the pods are ",{"type":41,"tag":83,"props":238,"children":240},{"className":239},[],[241],{"type":47,"value":242},"Ready",{"type":47,"value":244}," (all readiness probes passing).",{"type":41,"tag":72,"props":246,"children":247},{},[248],{"type":47,"value":249},"If pods are not ready: check which readiness probe is failing and why (wrong path, wrong port, application not fully started).",{"type":41,"tag":72,"props":251,"children":252},{},[253],{"type":47,"value":254},"Verify the container is listening on the expected port — a mismatch between the declared containerPort and the actual listening port causes silent failures.",{"type":41,"tag":72,"props":256,"children":257},{},[258],{"type":47,"value":259},"If pods are ready and the port is correct: the issue may be application-level (the app returns errors for the specific request path).",{"type":41,"tag":56,"props":261,"children":263},{"id":262},"_5-diagnose-tls-issues",[264],{"type":47,"value":265},"5. Diagnose TLS Issues",{"type":41,"tag":50,"props":267,"children":268},{},[269],{"type":47,"value":270},"If the error is TLS-related (certificate errors, HTTPS not working):",{"type":41,"tag":68,"props":272,"children":273},{},[274,300,325,355],{"type":41,"tag":72,"props":275,"children":276},{},[277,279,284,286,291,293,298],{"type":47,"value":278},"Identify the Route's TLS termination type: ",{"type":41,"tag":188,"props":280,"children":281},{},[282],{"type":47,"value":283},"edge",{"type":47,"value":285},", ",{"type":41,"tag":188,"props":287,"children":288},{},[289],{"type":47,"value":290},"reencrypt",{"type":47,"value":292},", or ",{"type":41,"tag":188,"props":294,"children":295},{},[296],{"type":47,"value":297},"passthrough",{"type":47,"value":299},".",{"type":41,"tag":72,"props":301,"children":302},{},[303,305,309,311],{"type":47,"value":304},"For ",{"type":41,"tag":188,"props":306,"children":307},{},[308],{"type":47,"value":283},{"type":47,"value":310}," termination:\n",{"type":41,"tag":312,"props":313,"children":314},"ul",{},[315,320],{"type":41,"tag":72,"props":316,"children":317},{},[318],{"type":47,"value":319},"The ingress controller terminates TLS. Check if the Route has a custom certificate or uses the default wildcard certificate.",{"type":41,"tag":72,"props":321,"children":322},{},[323],{"type":47,"value":324},"If custom certificate: verify the certificate matches the hostname and is not expired.",{"type":41,"tag":72,"props":326,"children":327},{},[328,329,333,334],{"type":47,"value":304},{"type":41,"tag":188,"props":330,"children":331},{},[332],{"type":47,"value":290},{"type":47,"value":310},{"type":41,"tag":312,"props":335,"children":336},{},[337,350],{"type":41,"tag":72,"props":338,"children":339},{},[340,342,348],{"type":47,"value":341},"The ingress controller terminates and re-encrypts to the backend. Check the ",{"type":41,"tag":83,"props":343,"children":345},{"className":344},[],[346],{"type":47,"value":347},"destinationCACertificate",{"type":47,"value":349}," — it must trust the backend pod's certificate.",{"type":41,"tag":72,"props":351,"children":352},{},[353],{"type":47,"value":354},"Verify the backend pod is serving TLS on the target port.",{"type":41,"tag":72,"props":356,"children":357},{},[358,359,363,364],{"type":47,"value":304},{"type":41,"tag":188,"props":360,"children":361},{},[362],{"type":47,"value":297},{"type":47,"value":310},{"type":41,"tag":312,"props":365,"children":366},{},[367,372],{"type":41,"tag":72,"props":368,"children":369},{},[370],{"type":47,"value":371},"TLS is terminated by the application pod. The ingress controller does not inspect the certificate.",{"type":41,"tag":72,"props":373,"children":374},{},[375],{"type":47,"value":376},"Verify the pod is serving valid TLS on the expected port.",{"type":41,"tag":50,"props":378,"children":379},{},[380],{"type":47,"value":381},"Report which TLS layer has the issue — do not suggest regenerating all certificates when only one is wrong.",{"type":41,"tag":56,"props":383,"children":385},{"id":384},"_6-check-the-ingress-controller",[386],{"type":47,"value":387},"6. Check the Ingress Controller",{"type":41,"tag":50,"props":389,"children":390},{},[391],{"type":47,"value":392},"If the Route is Admitted, the Service has endpoints, pods are ready, and TLS is correct, the issue may be at the ingress controller level:",{"type":41,"tag":68,"props":394,"children":395},{},[396,409,414],{"type":41,"tag":72,"props":397,"children":398},{},[399,401,407],{"type":47,"value":400},"Check the IngressController\u002Frouter pods in ",{"type":41,"tag":83,"props":402,"children":404},{"className":403},[],[405],{"type":47,"value":406},"openshift-ingress",{"type":47,"value":408}," — are they running and ready?",{"type":41,"tag":72,"props":410,"children":411},{},[412],{"type":47,"value":413},"Check the IngressController's status conditions for errors.",{"type":41,"tag":72,"props":415,"children":416},{},[417,419,425,427,433],{"type":47,"value":418},"If using a non-default IngressController: verify the Route is exposed by the correct one (check ",{"type":41,"tag":83,"props":420,"children":422},{"className":421},[],[423],{"type":47,"value":424},"routeSelector",{"type":47,"value":426}," and ",{"type":41,"tag":83,"props":428,"children":430},{"className":429},[],[431],{"type":47,"value":432},"namespaceSelector",{"type":47,"value":434},").",{"type":41,"tag":50,"props":436,"children":437},{},[438],{"type":47,"value":439},"Ingress controller issues are rare compared to Service\u002FEndpoint issues. Only investigate here after ruling out the common causes.",{"type":41,"tag":56,"props":441,"children":443},{"id":442},"quality-standards",[444],{"type":47,"value":445},"Quality Standards",{"type":41,"tag":312,"props":447,"children":448},{},[449,454,459,464,469],{"type":41,"tag":72,"props":450,"children":451},{},[452],{"type":47,"value":453},"Always trace the full chain: Route → Service → Endpoints → Pod. Do not skip layers — report which specific layer is broken.",{"type":41,"tag":72,"props":455,"children":456},{},[457],{"type":47,"value":458},"Report the exact selector mismatch if endpoints are empty — show both the Service selector and the pod labels side by side.",{"type":41,"tag":72,"props":460,"children":461},{},[462],{"type":47,"value":463},"For TLS issues: specify which termination type is in use and which side has the problem. Generic \"check your certificates\" is not helpful.",{"type":41,"tag":72,"props":465,"children":466},{},[467],{"type":47,"value":468},"Do not suggest creating a new Route if the existing one has a fixable misconfiguration. Fix what exists first.",{"type":41,"tag":72,"props":470,"children":471},{},[472],{"type":47,"value":473},"If the issue is application-level (the app itself returns errors), say so clearly rather than continuing to troubleshoot infrastructure.",{"items":475,"total":585},[476,489,502,515,528,535,552,563,573],{"slug":477,"name":477,"fn":478,"description":479,"org":480,"tags":481,"stars":24,"repoUrl":25,"updatedAt":488},"degraded-operator-recovery","recover degraded OpenShift cluster operators","Troubleshoot ClusterOperator in Degraded, Unavailable, or not Progressing state. Use when operator status shows error conditions, reconciliation failures, or degraded health checks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[482,483,484,487],{"name":22,"slug":23,"type":15},{"name":20,"slug":8,"type":15},{"name":485,"slug":486,"type":15},"Operations","operations",{"name":13,"slug":14,"type":15},"2026-04-06T18:43:30.354728",{"slug":490,"name":490,"fn":491,"description":492,"org":493,"tags":494,"stars":24,"repoUrl":25,"updatedAt":501},"namespace-troubleshooting","troubleshoot OpenShift namespace and RBAC issues","Troubleshoot namespace stuck in Terminating state, ResourceQuota exhaustion, or RBAC permission denied errors. Use when resources cannot be created or forbidden errors occur.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[495,498,499,500],{"name":496,"slug":497,"type":15},"Access Control","access-control",{"name":22,"slug":23,"type":15},{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-04-06T18:43:29.107881",{"slug":503,"name":503,"fn":504,"description":505,"org":506,"tags":507,"stars":24,"repoUrl":25,"updatedAt":514},"node-not-ready","troubleshoot OpenShift node status issues","Troubleshoot NotReady or SchedulingDisabled node status. Use when a node is down, unschedulable, or needs to be drained and restored.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[508,509,512,513],{"name":22,"slug":23,"type":15},{"name":510,"slug":511,"type":15},"Engineering","engineering",{"name":20,"slug":8,"type":15},{"name":485,"slug":486,"type":15},"2026-04-06T18:43:26.607462",{"slug":516,"name":516,"fn":517,"description":518,"org":519,"tags":520,"stars":24,"repoUrl":25,"updatedAt":527},"pod-failure-diagnosis","diagnose OpenShift pod failure states","Troubleshoot CrashLoopBackOff, ImagePullBackOff, Pending, Error, or OOMKilled status. Use when a workload keeps restarting, fails to start, or is crash-looping.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[521,522,525,526],{"name":22,"slug":23,"type":15},{"name":523,"slug":524,"type":15},"Kubernetes","kubernetes",{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-04-06T18:43:27.866868",{"slug":4,"name":4,"fn":5,"description":6,"org":529,"tags":530,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[531,532,533,534],{"name":22,"slug":23,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":536,"name":536,"fn":537,"description":538,"org":539,"tags":540,"stars":549,"repoUrl":550,"updatedAt":551},"cluster-update-advisor","assess OpenShift cluster update readiness","Assess OpenShift cluster update (upgrade) readiness and risk. Use when evaluating whether a cluster is safe to update, when an update is available, or when the user asks about update risks, prerequisites, blockers, or best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[541,544,545,546],{"name":542,"slug":543,"type":15},"Deployment","deployment",{"name":20,"slug":8,"type":15},{"name":485,"slug":486,"type":15},{"name":547,"slug":548,"type":15},"Risk Assessment","risk-assessment",5,"https:\u002F\u002Fgithub.com\u002Fopenshift\u002Fagentic-skills","2026-05-12T06:07:16.759342",{"slug":553,"name":553,"fn":554,"description":555,"org":556,"tags":557,"stars":549,"repoUrl":550,"updatedAt":562},"kubernetes-docs","search and read Kubernetes documentation","Search and read Kubernetes documentation in markdown format. Use when the user asks about Kubernetes concepts, tasks, API reference, kubectl, or any upstream k8s topic — including pods, deployments, services, RBAC, networking, storage, or scheduling.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[558,561],{"name":559,"slug":560,"type":15},"Documentation","documentation",{"name":523,"slug":524,"type":15},"2026-05-12T06:07:15.393562",{"slug":564,"name":564,"fn":565,"description":566,"org":567,"tags":568,"stars":549,"repoUrl":550,"updatedAt":572},"openshift-docs","search and read OpenShift documentation","Search and read OpenShift Container Platform documentation in markdown format. Use when the user asks about OpenShift features, configuration, installation, troubleshooting, or any OCP-specific topic — including operators, routes, services, oc, RBAC, networking, storage, or cluster administration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[569,570,571],{"name":559,"slug":560,"type":15},{"name":523,"slug":524,"type":15},{"name":20,"slug":8,"type":15},"2026-05-12T06:07:14.03809",{"slug":574,"name":574,"fn":575,"description":576,"org":577,"tags":578,"stars":549,"repoUrl":550,"updatedAt":584},"product-lifecycle","query Red Hat product lifecycle data","Query Red Hat Product Life Cycle data for support phases, end-of-life dates, and OpenShift version compatibility. Use when evaluating whether installed operators or layered products are supported on a given OCP version, approaching end of life, or need upgrading before a cluster upgrade. Also use when the user asks about product support status, EOL dates, or lifecycle phases for any Red Hat product.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[579,580,581],{"name":20,"slug":8,"type":15},{"name":485,"slug":486,"type":15},{"name":582,"slug":583,"type":15},"Reporting","reporting","2026-07-31T05:55:39.981651",9,{"items":587,"total":549},[588,595,602,609,616],{"slug":477,"name":477,"fn":478,"description":479,"org":589,"tags":590,"stars":24,"repoUrl":25,"updatedAt":488},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[591,592,593,594],{"name":22,"slug":23,"type":15},{"name":20,"slug":8,"type":15},{"name":485,"slug":486,"type":15},{"name":13,"slug":14,"type":15},{"slug":490,"name":490,"fn":491,"description":492,"org":596,"tags":597,"stars":24,"repoUrl":25,"updatedAt":501},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[598,599,600,601],{"name":496,"slug":497,"type":15},{"name":22,"slug":23,"type":15},{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":503,"name":503,"fn":504,"description":505,"org":603,"tags":604,"stars":24,"repoUrl":25,"updatedAt":514},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[605,606,607,608],{"name":22,"slug":23,"type":15},{"name":510,"slug":511,"type":15},{"name":20,"slug":8,"type":15},{"name":485,"slug":486,"type":15},{"slug":516,"name":516,"fn":517,"description":518,"org":610,"tags":611,"stars":24,"repoUrl":25,"updatedAt":527},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[612,613,614,615],{"name":22,"slug":23,"type":15},{"name":523,"slug":524,"type":15},{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":617,"tags":618,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[619,620,621,622],{"name":22,"slug":23,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15}]