jackwener/OpenCLI · warning · EmptyResultError
No dblp author matched "${name}". Try a different spelling,
Error message
No dblp author matched "${name}". Try a different spelling, or pass --pid to bypass author search. What it means
EmptyResultError thrown when the dblp author-search API (q=<name>) returns zero hits. It indicates the search succeeded but dblp has no author matching the given name string.
Source
Thrown at clis/dblp/author.js:94
if (pidArg) {
if (!PID_PATTERN.test(pidArg)) {
throw new ArgumentError(
`dblp pid "${pidArg}" is not a valid PID`,
'Expected something like "56/953" — visit the author page on dblp.org to find it.',
);
}
pid = pidArg;
}
else {
const name = requireQuery(args.author, 'author');
const json = await dblpFetchJson(
`/search/author/api?q=${encodeURIComponent(name)}&format=json&h=20`,
'dblp author search',
);
const raw = json?.result?.hits?.hit;
const hits = Array.isArray(raw) ? raw : (raw ? [raw] : []);
if (!hits.length) {
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(View on GitHub (pinned to 49907e53dc)
Solutions
- Try alternate spellings, initials, or the name as it appears on a known paper
- Look the author up on dblp.org directly to find the exact indexed spelling
- Copy the PID from the dblp author page and pass --pid to bypass search entirely
- Check for extra whitespace or punctuation in the name argument
Example fix
// before opencli dblp author --name 'Jhone Smith' // Error: No dblp author matched "Jhone Smith". // after opencli dblp author --pid 56/953 # or correct spelling: --name 'John Smith'
Defensive patterns
Strategy: fallback
Validate before calling
// Can't pre-validate against dblp's index; guard the input shape at least.
const name = String(args.name ?? '').trim();
if (!name) throw new Error('--name is required'); Try / catch
try {
rows = await dblpAuthor({ name });
} catch (err) {
if (/No dblp author matched/.test(err.message)) {
rows = []; // or fall back to a manual PID
} else throw err;
} Prevention
- Verify the author's exact indexed name on dblp.org first
- Keep a curated name→PID map for authors you query often
- Normalize names (trim, consistent casing) before search
- Try initials or alternate spellings programmatically before giving up
When it happens
Trigger: Calling `dblp author --name <name>` where dblp's /search/author/api returns an empty hit list — misspelled name, disambiguation variants, or the author is not indexed in dblp.
Common situations: Misspelled author name; searching a full name that dblp indexes differently (initials vs full first name); querying an industry author with no dblp-indexed publications; non-Latin script names dblp stores transliterated.
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 publications matched "${query}".
- No dblp venues matched "${query}".
- No 12306 stations match "${keyword}"
- ${label}
- No papers found for author "${authorText}". Try alternate sp
AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29).
Data as JSON: /api/errors/a7ad6c1344aa3e92.
Report an issue: GitHub.