{"record":{"id":"c63b21758605da6c","repo":"parallax/jsPDF","slug":"invalid-argument-passed-to-jspdf-getpageinfobyobji","errorCode":null,"errorMessage":"Invalid argument passed to jsPDF.getPageInfoByObjId","messagePattern":"Invalid argument passed to jsPDF\\.getPageInfoByObjId","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/jspdf.js","lineNumber":3330,"sourceCode":"  var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\n    pageNumberOneBased\n  ) {\n    if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\n    }\n    var objId = pagesContext[pageNumberOneBased].objId;\n    return {\n      objId: objId,\n      pageNumber: pageNumberOneBased,\n      pageContext: pagesContext[pageNumberOneBased]\n    };\n  });\n\n  var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\n    objId\n  ) {\n    if (isNaN(objId) || objId % 1 !== 0) {\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\n    }\n    for (var pageNumber in pagesContext) {\n      if (pagesContext[pageNumber].objId === objId) {\n        break;\n      }\n    }\n    return getPageInfo(pageNumber);\n  });\n\n  var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\n    return {\n      objId: pagesContext[currentPage].objId,\n      pageNumber: currentPage,\n      pageContext: pagesContext[currentPage]\n    };\n  });\n\n  /**","sourceCodeStart":3312,"sourceCodeEnd":3348,"githubUrl":"https://github.com/parallax/jsPDF/blob/a3930ce03a585a26b2c76d12a0f413ce96f6d1a3/src/jspdf.js#L3312-L3348","documentation":"Thrown by jsPDF.getPageInfoByObjId when objId is NaN or not an integer. The guard `isNaN(objId) || objId % 1 !== 0` rejects non-numbers, fractional values, undefined, and strings that coerce to NaN. objId must be a valid PDF object id previously returned by getPageInfo().","triggerScenarios":"Calling getPageInfoByObjId(undefined), with a fractional id, a string id like 'obj5', or an id that was never assigned. The function then iterates pagesContext looking for a matching objId.","commonSituations":"Passing an objId retrieved from the wrong structure; off-by issues where the caller assumes a string id; passing a page number instead of an object id.","solutions":["Pass the numeric objId returned by getPageInfo().objId.","Validate with Number.isInteger before calling.","If you only have a page number, use getPageInfo(pageNumber) directly instead."],"exampleFix":"// before\nconst info = doc.getPageInfoByObjId('5'); // string -> NaN\n// after\nconst info = doc.getPageInfoByObjId(5); // numeric object id","handlingStrategy":"validation","validationCode":"function safeGetPageInfoByObjId(doc, objId) {\n  const id = Number(objId);\n  if (!Number.isInteger(id)) throw new Error('objId must be an integer');\n  return doc.getPageInfoByObjId(id);\n}","typeGuard":"function isIntegerId(v) { return Number.isInteger(v); }","tryCatchPattern":null,"preventionTips":["Use the numeric objId from getPageInfo().objId.","If you only have a page number, call getPageInfo instead.","Validate with Number.isInteger before calling."],"tags":["validation","page","integer","object-id","api"],"backgroundTag":null,"analyzedSha":"a3930ce03a585a26b2c76d12a0f413ce96f6d1a3","analyzedAt":"2026-08-13T05:33:39.648Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}