{"record":{"id":"f960b6fbbc21be30","repo":"mozilla/pdf.js","slug":"invalid-page-number","errorCode":null,"errorMessage":"Invalid page number.","messagePattern":"Invalid page number\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"web/pdf_viewer.js","lineNumber":519,"sourceCode":"   * @type {boolean}\n   */\n  get enableScripting() {\n    return !!this._scriptingManager;\n  }\n\n  /**\n   * @type {number}\n   */\n  get currentPageNumber() {\n    return this._currentPageNumber;\n  }\n\n  /**\n   * @param {number} val - The page number.\n   */\n  set currentPageNumber(val) {\n    if (!Number.isInteger(val)) {\n      throw new Error(\"Invalid page number.\");\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    if (this._currentPageNumber !== val) {\n      this.clearSelection();\n    }\n    // The intent can be to just reset a scroll position and/or scale.\n    if (!this._setCurrentPageNumber(val, /* resetCurrentPageView = */ true)) {\n      console.error(`currentPageNumber: \"${val}\" is not a valid page.`);\n    }\n  }\n\n  /**\n   * @returns {boolean} Whether the pageNumber is valid (within bounds).\n   * @private\n   */\n  _setCurrentPageNumber(val, resetCurrentPageView = false) {","sourceCodeStart":501,"sourceCodeEnd":537,"githubUrl":"https://github.com/mozilla/pdf.js/blob/5903d58d58e4dd9ce6ffa3834aea8480f06b4ada/web/pdf_viewer.js#L501-L537","documentation":"Thrown by PDFViewer.currentPageNumber setter when the value is not an integer (Number.isInteger(val) is false). The setter routes to _setCurrentPageNumber which requires a valid 1-based page index.","triggerScenarios":"Setting viewer.currentPageNumber = 1.5, NaN, a string, or undefined. Also from passing a float page number derived from scroll math without rounding.","commonSituations":"Computed page numbers from scroll position not rounded; deserialized state with bad values; UI controls sending non-integer input.","solutions":["Pass an integer 1-based page number in [1, pagesCount].","Round/validate input: const n = Math.round(raw); if (Number.isInteger(n)) viewer.currentPageNumber = n.","Clamp against viewer.pagesCount before assigning."],"exampleFix":"// before\nviewer.currentPageNumber = scrollFraction * viewer.pagesCount;\n\n// after\nconst n = Math.round(scrollFraction * viewer.pagesCount);\nif (Number.isInteger(n) && n >= 1 && n <= viewer.pagesCount) {\n  viewer.currentPageNumber = n;\n}","handlingStrategy":"validation","validationCode":"const n = Math.round(raw);\nif (Number.isInteger(n) && n >= 1 && n <= viewer.pagesCount) {\n  viewer.currentPageNumber = n;\n}","typeGuard":"function isPositiveInt(v) {\n  return Number.isInteger(v) && v > 0;\n}","tryCatchPattern":null,"preventionTips":["Round page numbers from scroll math before assigning.","Clamp to [1, pagesCount].","Validate deserialized page state on load."],"tags":["navigation","validation","page-number","setter"],"backgroundTag":null,"analyzedSha":"5903d58d58e4dd9ce6ffa3834aea8480f06b4ada","analyzedAt":"2026-08-13T02:28:27.364Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}