{"record":{"id":"c10379055a22a64f","repo":"jackwener/OpenCLI","slug":"dblp-pid-pid-resolvedname-resolvedname","errorCode":null,"errorMessage":"dblp PID ${pid}${resolvedName ? ` (${resolvedName})` : ''} has no publications.","messagePattern":"dblp PID (.+?)(.+?)\\)` : ''\\} has no publications\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/dblp/author.js","lineNumber":112,"sourceCode":"                throw new EmptyResultError(\n                    'dblp author',\n                    `No dblp author matched \"${name}\". Try a different spelling, or pass --pid to bypass author search.`,\n                );\n            }\n            const top = pickTopAuthor(hits);\n            pid = extractPidFromAuthorHit(top);\n            if (!pid) {\n                throw new CommandExecutionError(\n                    `dblp author search for \"${name}\" returned a hit without a PID URL`,\n                    'dblp may have changed its author-search response shape; retry or pass --pid manually.',\n                );\n            }\n            resolvedName = decodeXmlEntities(String(top?.info?.author ?? '')).trim();\n        }\n        const xml = await dblpFetchXml(`/pid/${pid}.xml`, `dblp pid ${pid}`);\n        const records = splitRecords(xml);\n        if (!records.length) {\n            throw new EmptyResultError(\n                'dblp author',\n                `dblp PID ${pid}${resolvedName ? ` (${resolvedName})` : ''} has no publications.`,\n            );\n        }\n        return records.slice(0, limit).map((recordXml, i) => {\n            const row = recordXmlToRow(`<root>${recordXml}</root>`);\n            return {\n                rank: i + 1,\n                key: row.key || extractRecordKey(recordXml),\n                title: row.title,\n                authors: row.authors,\n                venue: row.venue,\n                year: row.year,\n                type: row.type,\n                doi: row.doi,\n                pid,\n                url: row.open_access_url || row.dblp_url,\n            };","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/dblp/author.js#L94-L130","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nopencli dblp author --pid 199/0001   # profile with no pubs\n// Error: dblp PID 199/0001 (Jane Doe) has no publications.\n// after\nopencli dblp search 'Jane Doe machine learning'","handlingStrategy":"fallback","validationCode":"// Verify the PID page has content before expecting publications.\nconst res = await fetch(`https://dblp.org/pid/${pid}.xml`);\nif (!res.ok) throw new Error(`PID ${pid} not found on dblp`);","typeGuard":null,"tryCatchPattern":"try {\n  rows = await dblpAuthor({ pid });\n} catch (err) {\n  if (/has no publications/.test(err.message)) {\n    rows = []; // genuinely empty profile\n  } else throw err;\n}","preventionTips":["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"],"tags":["dblp","empty-result","cli"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}