jackwener/OpenCLI · warning · EmptyResultError

No creator videos were returned. Confirm the current Chrome

Error message

No creator videos were returned. Confirm the current Chrome profile is logged in to TikTok Studio and has published content.

What it means

Pagination completed successfully but zero video rows were collected and nothing was skipped for missing ids — TikTok genuinely returned no videos. This is an EmptyResultError, signaling 'no data' rather than a malfunction, with a hint about login and published content.

Source

Thrown at clis/tiktok/creator-videos.js:241

        for (const item of items) {
            const row = normalizeRow(item);
            if (!row) {
                skippedMissingId += 1;
                continue;
            }
            rows.push(row);
            if (rows.length >= limit) break;
        }
        if (!data.has_more || items.length === 0) break;
        nextCursor = requireCursor(data.cursor);
        await page.wait(250);
    }

    if (rows.length === 0 && skippedMissingId > 0) {
        throw new CommandExecutionError('TikTok Studio item_list returned videos without stable video_id');
    }
    if (rows.length === 0) {
        throw new EmptyResultError('tiktok creator-videos', 'No creator videos were returned. Confirm the current Chrome profile is logged in to TikTok Studio and has published content.');
    }
    return rows.slice(0, limit);
}

export const creatorVideosCommand = cli({
    site: 'tiktok',
    name: 'creator-videos',
    access: 'read',
    description: 'TikTok Studio creator content list (views/likes/comments/saves/shares)',
    domain: 'www.tiktok.com',
    strategy: Strategy.COOKIE,
    browser: true,
    navigateBefore: STUDIO_CONTENT_URL,
    args: [
        { name: 'limit', type: 'int', default: DEFAULT_LIMIT, help: `Number of creator videos to return (max ${MAX_LIMIT})` },
        { name: 'cursor', type: 'string', default: '0', help: 'Non-negative TikTok Studio pagination cursor' },
    ],
    columns: ['video_id', 'title', 'date', 'views', 'likes', 'comments', 'saves', 'shares', 'url'],

View on GitHub (pinned to 49907e53dc)

Solutions

  1. Confirm the Chrome profile is logged in to TikTok Studio and shows published videos in the web UI
  2. Verify you're targeting the intended creator account (not an empty or wrong account)
  3. Publish at least one video or adjust the query to an account with content
  4. Handle EmptyResultError in your pipeline as 'no data' instead of a hard failure

Example fix

// before
const rows = await listCreatorVideos(page, { limit: 20 });
// after
try {
  const rows = await listCreatorVideos(page, { limit: 20 });
} catch (e) {
  if (e instanceof EmptyResultError) return []; // account has no videos
  throw e;
}
Defensive patterns

Strategy: try-catch

Validate before calling

// Confirm the account actually has videos via the Studio UI before automating
const hasVideos = await page.evaluate(() => !!document.querySelector('[data-e2e="video-card"], video'));
if (!hasVideos) console.warn('Profile appears to have no published videos');

Type guard

function isEmptyResult(e) { return e instanceof EmptyResultError; }

Try / catch

try {
  rows = await listCreatorVideos(page, opts);
} catch (e) {
  if (e instanceof EmptyResultError) return []; // legitimate: account has no videos
  throw e;
}

Prevention

When it happens

Trigger: The logged-in creator account has no published videos (new/empty account), or item_list returns has_more=false with zero items on the first page.

Common situations: Fresh TikTok account with no posts, all videos deleted or set to private-only visibility, querying the wrong Studio account, or a profile logged in but never granted Studio access.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


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