jackwener/OpenCLI · warning · EmptyResultError
No papers found at venue "${value}". ${hint}
Error message
No papers found at venue "${value}". ${hint} What it means
After querying the OpenReview API, the venue command throws EmptyResultError when zero notes come back, with a hint tailored to whether the input was an invitation id (contains '/-/') or plain venue text. This distinguishes a genuine 'nothing found' from a silent empty response.
Source
Thrown at clis/openreview/venue.js:46
func: async (args) => {
const value = String(args.venue ?? '').trim();
if (!value) {
throw new ArgumentError('openreview venue cannot be empty');
}
const limit = requireBoundedInt(args.limit, 25, 200);
const offset = requireNonNegativeInt(args.offset, 0);
const isInvitation = value.includes('/-/');
const filter = isInvitation
? `invitation=${encodeURIComponent(value)}`
: `content.venue=${encodeURIComponent(value)}`;
const path = `/notes?${filter}&limit=${limit}&offset=${offset}`;
const json = await openreviewFetch(path, `openreview venue ${value}`);
const notes = Array.isArray(json?.notes) ? json.notes : [];
if (!notes.length) {
const hint = isInvitation
? 'Check the invitation id (e.g. "ICLR.cc/2025/Conference/-/Submission").'
: 'Try a venue text like "ICLR 2024 oral" or pass a full invitation id.';
throw new EmptyResultError('openreview', `No papers found at venue "${value}". ${hint}`);
}
return notes.slice(0, limit).map((note, i) => {
const row = noteToRow(note);
return {
rank: offset + i + 1,
id: row.id,
title: row.title,
authors: row.authors,
keywords: row.keywords,
primary_area: row.primary_area,
pdate: row.pdate,
pdf: row.pdf,
url: row.url,
};
});
},
});
View on GitHub (pinned to 49907e53dc)
Solutions
- If using an invitation id, verify it on openreview.net (e.g. 'ICLR.cc/2025/Conference/-/Submission').
- Try plain venue text like 'ICLR 2024 oral' instead of an invitation id.
- Try a different year or broader venue string; confirm the venue actually uses OpenReview.
Example fix
// before cli venue 'ICLR.cc/2025/Conference/-/Submissions' // after cli venue 'ICLR.cc/2025/Conference/-/Submission'
Defensive patterns
Strategy: fallback
Try / catch
import { EmptyResultError } from '.../errors.js';
try { const rows = await venueCmd(args); }
catch (e) { if (e instanceof EmptyResultError) { console.warn('nothing found; try broader venue text or a different year'); return []; } throw e; } Prevention
- Prefer broad venue text ('ICLR 2024') before narrowing to invitation ids.
- Verify invitation ids against the current year's venue on openreview.net.
- Remember zero notes means genuinely no results — not an outage.
- Handle EmptyResultError as an expected outcome in scripts (exit 0 with a warning, or a distinct code).
When it happens
Trigger: openreviewFetch returns json with notes: [] — the venue text matches no notes, or the invitation id is wrong/renamed/has no submissions.
Common situations: Typo in venue text ('ICLR 2025 orals'); invitation id from a previous year ('ICLR.cc/2024/...' for 2025 data); venue that does not publish to OpenReview; querying before submissions are posted.
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
- No dblp venues matched "${query}".
- No OpenReview submissions found for profile "${profile}". Co
- No paper found with id "${id}". Confirm the forum/note id fr
- No forum found with id "${forum}". Confirm the forum id from
- No papers found for "${term}". Try a different keyword.
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/045cf5bf77b3b892.
Report an issue: GitHub.