Diagnostics

Every finding has a stable code, severity, message, optional route path, and source document. Use the code in docs, filters, and CI scripts.

Codes

CodeSeverityGroupMeaning
CMS-ROUTE-404errorroutesExpected route returned 404.
CMS-ROUTE-500errorroutesExpected route returned a 5xx response.
CMS-ROUTE-DUPLICATEerrorroutesTwo or more published documents resolve to the same route path. Only one wins at runtime; drafts are ignored.
CMS-ROUTE-ERRORerrorroutesRoute probe failed or returned another 4xx response.
CMS-ROUTE-INVALIDerrorroutesConfig route resolved to an empty, non-slash, or protocol-relative path.
CMS-ROUTE-RESOLVEerrorroutesThe configured getPath function threw.
CMS-UID-MISSINGerrorroutesA route pattern needs :uid, but the document has no UID.
CMS-ROUTE-UNMAPPEDinforoutesDocument type has no configured route mapping.
CMS-FIELD-MISSINGconfiguredfieldsA project-specific required field is missing or blank. Severity follows that field rule.
CMS-RELATIONSHIP-MISSINGconfiguredrelationshipsA configured relationship rule found fewer matching related records than expected. Severity follows that relationship rule.
CMS-RELATIONSHIP-UNPUBLISHEDwarningrelationshipsA published document's relationship is satisfied only by draft records, so it links to nothing live at runtime.
CMS-LOCALE-MISSINGwarninglocalizationA content group has no published document in one or more configured locales. Opt-in via checks.localization.
SEO-META-MISSINGwarningseoSEO title or description is blank across the provider-specific field shapes cms-lab understands.
SEO-CANONICAL-MISSINGwarningseoA 2xx route has no <link rel="canonical">. Opt-in via checks.routes.canonical.
SEO-CANONICAL-OFF-ORIGINerrorseoCanonical points to a different origin, often a leftover staging hostname.
SEO-CANONICAL-MISMATCHwarningseoCanonical path disagrees with the probed path beyond trailing slash and case.
SEO-JSONLD-INVALIDwarningseoA route has a malformed application/ld+json block. Opt-in via checks.routes.structuredData.
SEO-JSONLD-MISSINGinfoseoA route renders no JSON-LD structured data. Informational; enabled via checks.routes.structuredData.
SEO-OG-IMAGE-MISSINGwarningseoOpen Graph image is missing. Opt-in via checks.seo.og.
SEO-OG-MISSINGwarningseoOpen Graph title or description is missing. Enabled via the checks.seo.og object form.
SEO-TWITTER-MISSINGinfoseoX (Twitter) card image is missing. Enabled via the checks.seo.og object form; X falls back to the Open Graph image.
A11Y-IMG-ALTwarninga11yA CMS image field is missing useful alt text in the provider native alt field.
CMS-IMG-DIMENSIONSwarningimagesA CMS image field exposes no width/height, a common cause of layout shift (CLS). Opt-in via checks.images.dimensions.
CUSTOM-RULEconfiguredcustomA project-specific rule declared in checks.custom did not hold. Default code for declarative rules; functional rules may emit their own codes. Severity follows that rule.

Explain a code

Use the CLI when you want the short fix guidance in your terminal.

npx @cms-lab/cli explain CMS-ROUTE-404