{"record":{"id":"c46e1f01dbd2c2c3","repo":"appsmithorg/appsmith","slug":"cannot-find-page-with-base-id-basepageid","errorCode":null,"errorMessage":"Cannot find page with base id: ${basePageId}","messagePattern":"Cannot find page with base id: (.+?)","errorType":"exception","errorClass":"PageNotFoundError","httpStatus":404,"severity":"critical","filePath":"app/client/src/sagas/InitSagas.ts","lineNumber":323,"sourceCode":"    // when the user is an anonymous user we embed the url with the attempted route\n    // this is taken care in ce code repo but not on ee\n    if (e?.response?.status === 401) {\n      embedRedirectURL();\n    }\n\n    yield call(\n      executeActionDuringUserDetailsInitialisation,\n      ReduxActionTypes.END_CONSOLIDATED_PAGE_LOAD,\n      shouldInitialiseUserDetails,\n    );\n    appsmithTelemetry.captureException(\n      new Error(`consolidated api failure for ${JSON.stringify(params)}`),\n      {\n        errorName: \"ConsolidatedApiError\",\n        extra: { error: e },\n      },\n    );\n    throw new PageNotFoundError(`Cannot find page with base id: ${basePageId}`);\n  }\n\n  const {\n    featureFlags,\n    organizationConfig,\n    productAlert,\n    userProfile,\n    ...rest\n  } = response || {};\n  //actions originating from INITIALIZE_CURRENT_PAGE should update user details\n  //other actions are not necessary\n\n  if (!shouldInitialiseUserDetails) {\n    return rest;\n  }\n\n  yield put(getCurrentUser(userProfile));\n","sourceCodeStart":305,"sourceCodeEnd":341,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/client/src/sagas/InitSagas.ts#L305-L341","documentation":"PageNotFoundError thrown inside the catch block of the consolidated page-load API call. Caveat: the catch swallows the real exception and always re-throws as PageNotFoundError, so the message 'Cannot find page with base id' is misleading — the original cause may be a 401, a 5xx, a network failure, or genuinely a missing page. The saga also redirects anonymous users on 401 and logs a ConsolidatedApiError to telemetry before re-throwing.","triggerScenarios":"basePageId in the URL is wrong or stale; user is on a git branch where the page does not exist; session expired (401 triggers embedRedirectURL then this error); server returned 5xx; network drop during page boot.","commonSituations":"Switched git branches whose page tree differs; bookmarked a page that was since deleted; SSO token expired mid-session; server restart during page load; misrouted deploy where the page id changed.","solutions":["Check the URL's basePageId / page slug against the application's actual pages list.","Re-authenticate (log out and back in) if the session expired — look for the 401 redirect.","Switch to the git branch where the page exists, or pull the latest.","If the server is up, inspect browser Network for the consolidated API response status to identify the real cause."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Validate the route before boot, e.g. in a redirect helper\nif (!basePageId || !/^[0-9a-f]+$/.test(basePageId)) {\n  history.replace('/applications'); // bail to a safe page\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Re-authenticate when sessions are long-lived; handle the 401 redirect.","Switch to the git branch where the page exists before loading the URL.","Avoid bookmarking page ids that may be regenerated on redeploy.","Watch the consolidated API response status to distinguish missing-page from auth/network."],"tags":["init","page-load","page-not-found","auth","git-branch"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}