jackwener/OpenCLI · error · CommandExecutionError

facebook feed page rendered but no feed rows could be extrac

Error message

facebook feed page rendered but no feed rows could be extracted

What it means

When diagnostics (articleCount, actionMenuCount, fallbackActionCount, or mainTextLength > 200) show the feed page DID render substantial content but the extraction script still returned zero rows, the library throws CommandExecutionError('facebook feed page rendered but no feed rows could be extracted') with a diagnostics summary. This signals a markup/selector mismatch rather than an empty feed.

Source

Thrown at clis/facebook/feed.js:385

  if (!payload || typeof payload !== 'object' || !Array.isArray(payload.rows)) {
    throw new CommandExecutionError('facebook feed returned malformed extraction payload');
  }

  if (payload.status === 'auth') {
    throw new AuthRequiredError('www.facebook.com', 'Open Chrome and log in to Facebook before retrying.');
  }

  if (payload.rows.length > 0) {
    return payload.rows;
  }

  if (payload.status === 'empty') {
    throw new EmptyResultError('facebook feed', 'Facebook did not show any feed posts for this account.');
  }

  const diagnostics = payload.diagnostics || {};
  if (diagnostics.articleCount || diagnostics.actionMenuCount || diagnostics.fallbackActionCount || diagnostics.mainTextLength > 200) {
    throw new CommandExecutionError(
      'facebook feed page rendered but no feed rows could be extracted',
      `Diagnostics: articles=${diagnostics.articleCount || 0}, actions=${diagnostics.fallbackActionCount || 0}, mainTextLength=${diagnostics.mainTextLength || 0}.`,
    );
  }

  throw new EmptyResultError('facebook feed', 'No Facebook feed content was visible in the current browser session.');
}

const command = {
  site: 'facebook',
  name: 'feed',
  access: 'read',
  description: 'Get your Facebook news feed',
  domain: 'www.facebook.com',
  strategy: Strategy.COOKIE,
  browser: true,
  navigateBefore: false,
  args: [

View on GitHub (pinned to 49907e53dc)

Solutions

  1. Update the CLI/extension to the latest version with current feed selectors.
  2. Use the diagnostics string in the message to see which counts are non-zero and adjust extraction selectors accordingly.
  3. Open the feed in a browser dev tools and compare DOM structure against the script's expected selectors.
  4. Retry later if Facebook is mid-A/B rollout; pin to a locale where selectors are known-good.

Example fix

// before
const rows = await getFacebookFeed(page, { limit: 10 });
// after
try {
  var rows = await getFacebookFeed(page, { limit: 10 });
} catch (err) {
  console.error('Feed extraction failed:', err.message, err.hint);
  throw err; // update CLI/selectors; diagnostics included in message
}
Defensive patterns

Strategy: retry

Try / catch

try {
  const rows = await getFacebookFeed(page, { limit: 10 });
} catch (err) {
  if (/no feed rows could be extracted/.test(err.message)) {
    // parse err.message diagnostics; retry later or after updating CLI/selectors
  } else throw err;
}

Prevention

When it happens

Trigger: payload.rows is empty, status is not 'empty', and diagnostics indicate rendered feed-like DOM (articles/action menus present or long main text), meaning the extraction selectors no longer match Facebook's markup.

Common situations: Facebook rolled out a feed DOM change (new aria attributes or class names); A/B test put the account on a layout the script doesn't support; language/locale variant changes element structure; extension/CLI version too old for current Facebook markup.

Related errors


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