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

  1. Try alternate spellings, initials, or the name as it appears on a known paper
  2. Look the author up on dblp.org directly to find the exact indexed spelling
  3. Copy the PID from the dblp author page and pass --pid to bypass search entirely
  4. 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

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


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