{"record":{"id":"3ebc8591bf337d4c","repo":"vercel/next.js","slug":"invalid-interception-route-path-cannot-use-3ebc85","errorCode":null,"errorMessage":"Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.","messagePattern":"Invalid interception route: (.+?)\\. Cannot use \\(\\.\\.\\)\\(\\.\\.\\) marker at the root level or one level up\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/next/src/shared/lib/router/utils/interception-routes.ts","lineNumber":93,"sourceCode":"          `Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`\n        )\n      }\n      interceptedRoute = interceptingRoute\n        .split('/')\n        .slice(0, -1)\n        .concat(interceptedRoute)\n        .join('/')\n      break\n    case '(...)':\n      // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n      interceptedRoute = '/' + interceptedRoute\n      break\n    case '(..)(..)':\n      // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n\n      const splitInterceptingRoute = interceptingRoute.split('/')\n      if (splitInterceptingRoute.length <= 2) {\n        throw new Error(\n          `Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`\n        )\n      }\n\n      interceptedRoute = splitInterceptingRoute\n        .slice(0, -2)\n        .concat(interceptedRoute)\n        .join('/')\n      break\n    default:\n      throw new Error('Invariant: unexpected marker')\n  }\n\n  return { interceptingRoute, interceptedRoute }\n}\n","sourceCodeStart":75,"sourceCodeEnd":109,"githubUrl":"https://github.com/vercel/next.js/blob/0eb377541648e63402a47b38fee00a8d0ce8f8f1/packages/next/src/shared/lib/router/utils/interception-routes.ts#L75-L109","documentation":"extractInterceptionRouteInformation rejects the (..)(..) marker (two levels up) when the intercepting route sits at the root or only one level deep: there is no directory two levels above, so the intercepted route could never be resolved to a real segment.","triggerScenarios":"The (..)(..) interception marker is used at or near the root level.","commonSituations":"Using (..)(..) where there are not enough parent segments to traverse.","solutions":["Move the (..)(..) marker deeper in the route tree; it cannot be at root or one level up."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0eb377541648e63402a47b38fee00a8d0ce8f8f1","analyzedAt":"2026-08-19T02:10:13.922Z","contentChangedAt":"2026-08-19T02:10:13.922Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}