quasarframework/quasar · info

Ignored route (dynamic param): ${fullPath}

Error message

Ignored route (dynamic param): ${fullPath}

What it means

Verbose-only log from parseVueRouterRoutes when a route path contains a dynamic param (':') and no entry exists in opts.routesDynamicParamsMap for that fullPath. Since no concrete values were supplied for the param, the route is pushed to acc.ignoredDynamicParamSsgPages and skipped. Informational; requires opts.verbose.

Source

Thrown at app-vite/lib/modes/ssg/ssg-builder.js:161

        if (route.children) {
          parseVueRouterRoutes({
            routes: route.children,
            parentPath: fullPath,
            opts
          })
        }

        continue
      }

      if (routePath.includes(':')) {
        const dynamicMap = opts.routesDynamicParamsMap[fullPath]
        if (dynamicMap === void 0) {
          opts.acc.ignoredDynamicParamSsgPages.push(ssgPage)

          if (opts.verbose) {
            warn(
              `Ignored route (dynamic param): ${fullPath}`,
              'parseVueRouterRoutes()'
            )
          }
        } else {
          opts.dynamicRoutesMatched.push(fullPath)

          /**
           * Reuse the vue-router path parser so param substitution has
           * the exact router.resolve() semantics (optional, repeatable
           * and custom regex params, special chars in values).
           */
          const [routeParser] = createRouterMatcher(
            [{ path: fullPath, component: {} }],
            {}
          ).getRoutes()

          const paramNames = new Set(

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Provide the parameter values for the dynamic route via the SSG dynamic-params config so concrete pages can be generated.
  2. Ensure the dynamic pages are linked (crawlable) from pages that are prerendered so the crawler can discover them.
  3. If the route should not be prerendered, ignore this message.

Example fix

// before (quasar.config)
ssg: {}
// after
ssg: {
  routesDynamicParams: {
    '/user/:id': ['1', '2', '3']
  }
}
Defensive patterns

Strategy: validation

Validate before calling

// Ensure dynamic params are provided before SSG build
const dynamicRoutes = routes.filter((r) => r.path.includes(':')).map((r) => r.path)
const provided = Object.keys(ssg.routesDynamicParams || {})
const missing = dynamicRoutes.filter((p) => !provided.includes(p))
if (missing.length) console.warn('No params for:', missing)

Prevention

When it happens

Trigger: SSG build with verbose logging when ssg generation encounters a dynamic route (e.g. /user/:id) for which routesDynamicParamsMap provides no values, so no concrete pages can be generated for it.

Common situations: Forgetting to supply dynamic route parameter values via the SSG config (shouldGenerate/list of params) in quasar.config; relying solely on crawling when the dynamic pages are not linked from any prerendered page.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/ee3ea767daee384e. Report an issue: GitHub.