{"record":{"id":"364cfbf61bc0f31d","repo":"jackwener/OpenCLI","slug":"amazon-review-page-redirected-to-sign-in-and-produ","errorCode":null,"errorMessage":"amazon review page redirected to sign-in and product page fallback did not expose review summary","messagePattern":"amazon review page redirected to sign-in and product page fallback did not expose review summary","errorType":"exception","errorClass":"CommandExecutionError","httpStatus":null,"severity":"error","filePath":"clis/amazon/discussion.js","lineNumber":81,"sourceCode":"    const reviewUrl = buildDiscussionUrl(input);\n    const reviewState = await gotoAndReadState(page, reviewUrl, 2500, 'discussion');\n    assertUsableState(reviewState, 'discussion');\n    const reviewPayload = await readCurrentDiscussionPayload(page, limit);\n    if (hasDiscussionSummary(reviewPayload)) {\n        return reviewPayload;\n    }\n    const productUrl = buildProductUrl(input);\n    const productState = await gotoAndReadState(page, productUrl, 2500, 'discussion');\n    assertUsableState(productState, 'discussion');\n    if (isSignInState(reviewState) && isSignInState(productState)) {\n        throw new AuthRequiredError(amazonHostFromInput(input) ?? DOMAIN, 'Amazon review discussion requires an active signed-in Amazon session in the shared Chrome profile.');\n    }\n    const productPayload = await readCurrentDiscussionPayload(page, limit);\n    if (hasDiscussionSummary(productPayload)) {\n        return productPayload;\n    }\n    if (isSignInState(reviewState)) {\n        throw new CommandExecutionError('amazon review page redirected to sign-in and product page fallback did not expose review summary', 'Open the product page in Chrome, verify reviews are visible, and retry.');\n    }\n    return reviewPayload;\n}\ncli({\n    site: 'amazon',\n    name: 'discussion',\n    access: 'read',\n    description: 'Amazon review summary and sample customer discussion from product review pages',\n    domain: 'amazon.com',\n    strategy: Strategy.COOKIE,\n    navigateBefore: false,\n    args: [\n        {\n            name: 'input',\n            required: true,\n            positional: true,\n            help: 'ASIN or product URL, for example B0FJS72893',\n        },","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/amazon/discussion.js#L63-L99","documentation":"CommandExecutionError thrown when the review page redirected to sign-in but the product-page fallback DID load (not a sign-in state) yet still exposed no review summary (no average rating and no review count). The library cannot tell whether content is gated or the page changed, so it fails with a remediation hint instead of returning empty data.","triggerScenarios":"readDiscussionPayload: reviewState is a sign-in page, product page loads normally, hasDiscussionSummary(productPayload) is false (no [data-hook=rating-out-of-text] or [data-hook=total-review-count] found), and reviewState.isSignInState is true — hitting the `if (isSignInState(reviewState))` branch at discussion.js:81.","commonSituations":"Products with zero reviews (no rating/count elements exist at all); Amazon A/B test removing those data-hook selectors; product page variant for obscure ASINs; partially working session where reviews are gated but the product page renders.","solutions":["Confirm the product actually has reviews — a zero-review product legitimately has no summary to expose","Open the product page in Chrome, verify the review summary is visible signed-in, then retry","Retry later or from a cleaner session if a robot check interfered","If reviews are visible manually but the error persists, the data-hook selectors likely changed — report a scraping-selector bug"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  return await opencli.call('amazon discussion', { input: asin });\n} catch (e) {\n  if (/product page fallback did not expose review summary/.test(e.message)) {\n    // treat as 'no reviews available' or retry signed-in later\n    return null;\n  }\n  throw e;\n}","preventionTips":["Confirm the product has reviews before expecting a summary","Verify reviews render manually when signed in","Report persistent failures — data-hook selectors may have changed"],"tags":["amazon","scraping","dom-scraping","sign-in-redirect"],"backgroundTag":"scrape-target-not-found","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}