jackwener/OpenCLI · error · AuthRequiredError

Amazon review discussion requires an active signed-in Amazon

Error message

Amazon review discussion requires an active signed-in Amazon session in the shared Chrome profile.

What it means

AuthRequiredError thrown by readDiscussionPayload when BOTH the product review page and the product page fallback land on Amazon's sign-in page (/ap/signin or 'Amazon Sign-In' title). This means the shared Chrome profile has no usable Amazon session, so review content cannot be read anonymously. The library distinguishes this from a layout change by detecting the sign-in redirect on both attempts.

Source

Thrown at clis/amazon/discussion.js:74

        body: card.querySelector('[data-hook="review-body"]')?.textContent || '',
        verified: !!card.querySelector('[data-hook="avp-badge"]'),
      })),
    }))()
  `);
}
async function readDiscussionPayload(page, input, limit) {
    const reviewUrl = buildDiscussionUrl(input);
    const reviewState = await gotoAndReadState(page, reviewUrl, 2500, 'discussion');
    assertUsableState(reviewState, 'discussion');
    const reviewPayload = await readCurrentDiscussionPayload(page, limit);
    if (hasDiscussionSummary(reviewPayload)) {
        return reviewPayload;
    }
    const productUrl = buildProductUrl(input);
    const productState = await gotoAndReadState(page, productUrl, 2500, 'discussion');
    assertUsableState(productState, 'discussion');
    if (isSignInState(reviewState) && isSignInState(productState)) {
        throw new AuthRequiredError(amazonHostFromInput(input) ?? DOMAIN, 'Amazon review discussion requires an active signed-in Amazon session in the shared Chrome profile.');
    }
    const productPayload = await readCurrentDiscussionPayload(page, limit);
    if (hasDiscussionSummary(productPayload)) {
        return productPayload;
    }
    if (isSignInState(reviewState)) {
        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.');
    }
    return reviewPayload;
}
cli({
    site: 'amazon',
    name: 'discussion',
    access: 'read',
    description: 'Amazon review summary and sample customer discussion from product review pages',
    domain: 'amazon.com',
    strategy: Strategy.COOKIE,
    navigateBefore: false,

View on GitHub (pinned to 49907e53dc)

Solutions

  1. Sign in to amazon.com in the shared Chrome profile (or run the amazon auth login flow) and retry the discussion command
  2. Verify session health with the amazon auth status/verify command before scraping
  3. Open the product reviews page in Chrome manually and confirm reviews render signed-in
  4. If sessions keep expiring, avoid cookie-clearing settings and re-login periodically

Example fix

// before
discussion = await opencli.call('amazon discussion', { input: 'B0FJS72893' });
// throws AuthRequiredError

// after
const auth = await opencli.call('amazon auth status');
if (!auth.logged_in) await opencli.call('amazon auth login');
discussion = await opencli.call('amazon discussion', { input: 'B0FJS72893' });
Defensive patterns

Strategy: try-catch

Validate before calling

const auth = await opencli.call('amazon auth status');
if (!auth.logged_in) await opencli.call('amazon auth login');

Try / catch

try {
  return await opencli.call('amazon discussion', { input: asin });
} catch (e) {
  if (e.name === 'AuthRequiredError' && /signed-in Amazon session/.test(e.message)) {
    await opencli.call('amazon auth login');
    return opencli.call('amazon discussion', { input: asin });
  }
  throw e;
}

Prevention

When it happens

Trigger: Running the amazon discussion command (payload) for an ASIN/URL where gotoAndReadState on the review URL and on the product URL both return isSignInState true — Amazon redirected both requests to /ap/signin because the session is missing or expired.

Common situations: Expired Amazon session in the shared Chrome profile; running before ever logging in; Amazon increasingly gating review pages behind sign-in; cookies cleared between runs; IP/region triggering forced sign-in walls.

Related errors


AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29). Data as JSON: /api/errors/8041245887af92b4. Report an issue: GitHub.