{"record":{"id":"3881de072ec9b9c5","repo":"jackwener/OpenCLI","slug":"no-papers-found-for-author-authortext-try-al","errorCode":null,"errorMessage":"No papers found for author \"${authorText}\". Try alternate spellings (e.g. initials).","messagePattern":"No papers found for author \"(.+?)\"\\. Try alternate spellings \\(e\\.g\\. initials\\)\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/arxiv/author.js","lineNumber":33,"sourceCode":"    strategy: Strategy.PUBLIC,\n    browser: false,\n    args: [\n        { name: 'author', positional: true, required: true, help: 'Author name (e.g. \"Yoshua Bengio\" or \"Y Bengio\")' },\n        { name: 'limit', type: 'int', default: 20, help: 'Max papers to return (max 50)' },\n    ],\n    columns: ['id', 'title', 'authors', 'published', 'primary_category', 'url'],\n    func: async (args) => {\n        const authorText = String(args.author || '').trim();\n        if (!authorText) {\n            throw new ArgumentError('arxiv author cannot be empty', 'Example: opencli arxiv author \"Yoshua Bengio\"');\n        }\n        const limit = normalizeArxivLimit(args.limit, 20, 50);\n        // Quote the value so multi-word author names match as a phrase.\n        const query = encodeURIComponent(`au:\"${authorText}\"`);\n        const xml = await arxivFetch(`search_query=${query}&max_results=${limit}&sortBy=submittedDate&sortOrder=descending`);\n        const entries = parseEntries(xml);\n        if (!entries.length) {\n            throw new EmptyResultError('arxiv author', `No papers found for author \"${authorText}\". Try alternate spellings (e.g. initials).`);\n        }\n        return entries.map(e => ({\n            id: e.id,\n            title: e.title,\n            authors: e.authors,\n            published: e.published,\n            primary_category: e.primary_category,\n            url: e.url,\n        }));\n    },\n});\n","sourceCodeStart":15,"sourceCodeEnd":45,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/arxiv/author.js#L15-L45","documentation":"An EmptyResultError thrown when the arXiv author search API returns zero entries for the given author query. The search uses a quoted phrase query au:\"<name>\" sorted by submission date descending, so exact phrase matching means alternate spellings, initials, or diacritics can yield no hits. This is an expected empty outcome, not a fault.","triggerScenarios":"`opencli arxiv author \"<name>\"` where parseEntries(xml) returns [] — the au: phrase query matched no arXiv papers, e.g. misspelled name, name-only vs initials mismatch, or arXiv indexing differences.","commonSituations":"Searching \"Yoshua Bengio\" with a typo; authors who publish under initials (\"Y. Bengio\"); names with unicode diacritics stored differently in arXiv metadata; very new authors with no submissions.","solutions":["Try alternate spellings and initials: \"Y Bengio\", \"Yoshua Bengio\", \"Bengio Y\"","Drop diacritics or try the ASCII form of the name","Verify the author actually has arXiv papers (search arxiv.org manually)","Broaden to a keyword search via `opencli arxiv search <name>` to see if any entries exist"],"exampleFix":"// before\nawait exec('opencli arxiv author ' + name);\n// after\ntry {\n  return await exec(`opencli arxiv author \"${name}\"`);\n} catch (e) {\n  if (e.name === 'EmptyResultError') {\n    const initials = name.split(/\\s+/).map((w, i) => i < w.length - 1 ? w[0] : w).join(' ');\n    return await exec(`opencli arxiv author \"${initials}\"`); // retry with initials\n  }\n  throw e;\n}","handlingStrategy":"fallback","validationCode":"const author = String(name || '').trim();\nif (!author) throw new Error('author required');","typeGuard":"null","tryCatchPattern":"try {\n  return await exec(`opencli arxiv author \"${author}\"`);\n} catch (e) {\n  if (e.name === 'EmptyResultError') {\n    // fallback: broaden to keyword search\n    return await exec(`opencli arxiv search \"${author}\"`);\n  }\n  throw e;\n}","preventionTips":["Try initials variants for multi-word names","Strip diacritics to ASCII before searching","Fall back to keyword search when author search is empty","Confirm the author has arXiv papers before automating lookups"],"tags":["empty-result","arxiv","search"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}