jackwener/OpenCLI · warning · EmptyResultError
dblp PID ${pid}${resolvedName ? ` (${resolvedName})` : ''} h
Error message
dblp PID ${pid}${resolvedName ? ` (${resolvedName})` : ''} has no publications. What it means
EmptyResultError thrown when the dblp record XML fetched for a PID (/pid/<pid>.xml) yields zero publication records via splitRecords. The author page resolved fine but contains no publication entries.
Source
Thrown at clis/dblp/author.js:112
throw new EmptyResultError(
'dblp author',
`No dblp author matched "${name}". Try a different spelling, or pass --pid to bypass author search.`,
);
}
const top = pickTopAuthor(hits);
pid = extractPidFromAuthorHit(top);
if (!pid) {
throw new CommandExecutionError(
`dblp author search for "${name}" returned a hit without a PID URL`,
'dblp may have changed its author-search response shape; retry or pass --pid manually.',
);
}
resolvedName = decodeXmlEntities(String(top?.info?.author ?? '')).trim();
}
const xml = await dblpFetchXml(`/pid/${pid}.xml`, `dblp pid ${pid}`);
const records = splitRecords(xml);
if (!records.length) {
throw new EmptyResultError(
'dblp author',
`dblp PID ${pid}${resolvedName ? ` (${resolvedName})` : ''} has no publications.`,
);
}
return records.slice(0, limit).map((recordXml, i) => {
const row = recordXmlToRow(`<root>${recordXml}</root>`);
return {
rank: i + 1,
key: row.key || extractRecordKey(recordXml),
title: row.title,
authors: row.authors,
venue: row.venue,
year: row.year,
type: row.type,
doi: row.doi,
pid,
url: row.open_access_url || row.dblp_url,
};View on GitHub (pinned to 49907e53dc)
Solutions
- Verify the PID on dblp.org in a browser — check the author page actually lists publications
- If the profile is genuinely empty, search for the author's publications via `dblp search <query>` instead
- Double-check the PID isn't pointing at the wrong person/venue record
- Retry later in case dblp indexing was in progress
Example fix
// before opencli dblp author --pid 199/0001 # profile with no pubs // Error: dblp PID 199/0001 (Jane Doe) has no publications. // after opencli dblp search 'Jane Doe machine learning'
Defensive patterns
Strategy: fallback
Validate before calling
// Verify the PID page has content before expecting publications.
const res = await fetch(`https://dblp.org/pid/${pid}.xml`);
if (!res.ok) throw new Error(`PID ${pid} not found on dblp`); Try / catch
try {
rows = await dblpAuthor({ pid });
} catch (err) {
if (/has no publications/.test(err.message)) {
rows = []; // genuinely empty profile
} else throw err;
} Prevention
- Open https://dblp.org/pid/<pid>.html to confirm the profile lists publications before scripting
- Fall back to publication search by name when a profile is empty
- Validate PIDs against known-good sources
- Don't assume every dblp person record has indexed publications
When it happens
Trigger: Calling `dblp author --pid <pid>` where the fetched author XML parses to an empty record list — an author profile with no indexed publications, or a PID that points to an empty/vential profile.
Common situations: Author recently created their dblp profile with nothing indexed yet; extremely low --limit? no — actually valid-but-empty profiles; PID points to a person record with publications under a different entity; dblp serving a stripped-down response.
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 prices returned for train_no=${trainNo} ${fromStation.nam
- No 12306 stations match "${keyword}"
- CoinGecko returned no category data.
- coingecko top
- coingecko returned no trending coins.
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/c10379055a22a64f.
Report an issue: GitHub.