{"record":{"id":"55c376df5a0e5e40","repo":"jackwener/OpenCLI","slug":"no-paper-found-with-id-id-confirm-the-forum","errorCode":null,"errorMessage":"No paper found with id \"${id}\". Confirm the forum/note id from openreview.net.","messagePattern":"No paper found with id \"(.+?)\"\\. Confirm the forum/note id from openreview\\.net\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/openreview/paper.js","lineNumber":26,"sourceCode":"cli({\n    site: 'openreview',\n    name: 'paper',\n    access: 'read',\n    description: 'Show full metadata for a single OpenReview paper',\n    domain: 'openreview.net',\n    strategy: Strategy.PUBLIC,\n    browser: false,\n    args: [\n        { name: 'id', positional: true, required: true, help: 'OpenReview note id (e.g. \"5sRnsubyAK\")' },\n    ],\n    columns: ['id', 'title', 'authors', 'keywords', 'venue', 'venueid', 'primary_area', 'abstract', 'pdate', 'pdf', 'url'],\n    func: async (args) => {\n        const id = requireForumId(args.id);\n        const path = `/notes?id=${encodeURIComponent(id)}`;\n        const json = await openreviewFetch(path, `openreview paper ${id}`);\n        const notes = Array.isArray(json?.notes) ? json.notes : [];\n        if (!notes.length) {\n            throw new EmptyResultError('openreview', `No paper found with id \"${id}\". Confirm the forum/note id from openreview.net.`);\n        }\n        const row = noteToRow(notes[0]);\n        return [{\n            id: row.id,\n            title: row.title,\n            authors: row.authors,\n            keywords: row.keywords,\n            venue: row.venue,\n            venueid: row.venueid,\n            primary_area: row.primary_area,\n            abstract: row.abstract,\n            pdate: row.pdate,\n            pdf: row.pdf,\n            url: row.url,\n        }];\n    },\n});\n","sourceCodeStart":8,"sourceCodeEnd":44,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/openreview/paper.js#L8-L44","documentation":"The openreview paper command looks up a single note by its forum/note id. When the OpenReview API returns no notes for /notes?id=<id>, the command throws EmptyResultError because no paper corresponds to that id. OpenReview returns 200 with an empty notes array for unknown ids rather than a 404, so this check is required.","triggerScenarios":"openreviewFetch('/notes?id=<id>') succeeds but json.notes is missing or empty — the id does not match any public note on openreview.net.","commonSituations":"Truncated or mistyped forum id (copied partially from a URL); id from OpenReview API v1 used against a v2-only note (or vice versa); note withdrawn/deleted; passing an email or title instead of the hex note id.","solutions":["Re-copy the full forum id from the openreview.net URL (the 26-char string after /forum?id=)","Confirm the paper is publicly visible on openreview.net (not withdrawn/deleted)","Check whether the id belongs to API v2 notes (some venues require the v2 endpoint)","Fetch /notes?id=<id> directly in a browser/curl to inspect the raw response","If you only have the paper title, use the openreview search command to resolve the correct id"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (typeof id !== 'string' || !/^[A-Za-z0-9_-]{10,}$/.test(id.trim())) {\n    throw new Error(`Expected an OpenReview note id (long opaque token), got: ${id}`);\n}","typeGuard":"function isLikelyNoteId(v) {\n    return typeof v === 'string' && v.trim().length >= 10 && /^[A-Za-z0-9_-]+$/.test(v.trim());\n}","tryCatchPattern":"try {\n    const paper = await paperCommand({ id });\n} catch (err) {\n    if (err instanceof EmptyResultError) {\n        console.error('Unknown forum id; re-copy from openreview.net or resolve via search.');\n    } else {\n        throw err;\n    }\n}","preventionTips":["Copy the full 26-char id from the /forum?id= URL parameter","Confirm the paper loads publicly on openreview.net","Resolve unknown titles via the search command to get valid ids","Watch for v1 vs v2 API id mismatches for newer venues"],"tags":["empty-result","openreview","lookup","api-response"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}