jackwener/OpenCLI · error · AuthRequiredError
TikTok Studio item_list requires login: ${statusMsg || statu
Error message
TikTok Studio item_list requires login: ${statusMsg || statusCode} What it means
assertApiSuccess inspects TikTok's status_code/status_msg. When status_code is non-zero and the status message matches the auth-failure pattern (auth, login, permission, unauthorized, forbidden), the library raises AuthRequiredError for www.tiktok.com instead of a generic failure, telling you the session is not authenticated for TikTok Studio.
Source
Thrown at clis/tiktok/creator-videos.js:120
}
function looksAuthFailure(message) {
return /\b(auth|login|log in|permission|unauthori[sz]ed|forbidden)\b/i.test(message);
}
function unwrapPayload(data) {
if (!data || typeof data !== 'object') {
throw new CommandExecutionError('TikTok Studio item_list returned an empty response');
}
return data.data && typeof data.data === 'object' ? data.data : data;
}
function assertApiSuccess(data) {
const statusCode = data.status_code ?? data.statusCode;
const statusMsg = String(data.status_msg ?? data.statusMsg ?? '').trim();
if (statusCode !== undefined && Number(statusCode) !== 0) {
if (looksAuthFailure(statusMsg)) {
throw new AuthRequiredError('www.tiktok.com', `TikTok Studio item_list requires login: ${statusMsg || statusCode}`);
}
throw new CommandExecutionError(`TikTok Studio item_list failed: ${statusMsg || statusCode}`);
}
if (statusMsg && !/^(success|ok)$/i.test(statusMsg)) {
if (looksAuthFailure(statusMsg)) {
throw new AuthRequiredError('www.tiktok.com', `TikTok Studio item_list requires login: ${statusMsg}`);
}
throw new CommandExecutionError(`TikTok Studio item_list failed: ${statusMsg}`);
}
}
function normalizeNumber(value) {
const n = Number(value);
return Number.isFinite(n) ? n : 0;
}
function formatDate(value) {
const seconds = Number(value);View on GitHub (pinned to 49907e53dc)
Solutions
- Run the TikTok login flow for this CLI (e.g. `opencli tiktok login`) and retry.
- Refresh or re-import cookies for www.tiktok.com.
- Confirm the logged-in account actually owns the creator studio being queried.
- If the message is spurious (not really an auth issue), inspect status_msg/statusCode from the raw response to confirm.
Example fix
// before opencli tiktok creator-videos --user-name someuser // after (re-authenticate first) opencli tiktok login opencli tiktok creator-videos --user-name someuser
Defensive patterns
Strategy: try-catch
Try / catch
import { AuthRequiredError } from './errors.js';
try {
const videos = await listCreatorVideos(opts);
} catch (e) {
if (e instanceof AuthRequiredError || String(e.message).includes('requires login')) {
await tiktokLogin('www.tiktok.com');
return listCreatorVideos(opts);
}
throw e;
} Prevention
- Check/refresh TikTok session cookies before batch runs.
- Run the login flow at the start of scheduled jobs.
- Catch AuthRequiredError explicitly and trigger re-auth automatically.
- Avoid sharing one session across machines that log each other out.
When it happens
Trigger: item_list responds with statusCode != 0 and a status_msg like 'user not login', 'please log in', or 'permission denied' — e.g. expired/missing cookies when calling fetchCreatorVideosPage.
Common situations: Session cookies expired or were cleared; running headless without completing TikTok login; TikTok invalidating the session after a password change or suspicious-activity logout; using a different account than the studio owner.
Related errors
- TikTok Studio item_list requires login: ${statusMsg}
- No videos found for @${username}
- ${label} returned HTTP ${resp.status}: ${summarizeApiError(p
- Bilibili creator-center login is required: ${message}
- Bilibili creator-center login is required: ${detail}
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/be04c39bd6851549.
Report an issue: GitHub.