{"record":{"id":"57dba160bcf581a3","repo":"jackwener/OpenCLI","slug":"no-skills-found","errorCode":null,"errorMessage":"No skills found.","messagePattern":"No skills found\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/manus/skills.js","lineNumber":56,"sourceCode":"                Description: (s.description || '—').slice(0, 80),\n                Source: 'user',\n            });\n        }\n\n        const systemSkills = Object.prototype.hasOwnProperty.call(data, 'systemSkills')\n            ? requireArray(data.systemSkills, 'system skills')\n            : (Object.prototype.hasOwnProperty.call(data, 'skills') ? requireArray(data.skills, 'system skills') : []);\n        for (const [index, s] of systemSkills.entries()) {\n            rows.push({\n                ID: requireString(s?.id || s?.uid, `system skill ${index + 1}`),\n                Name: requireString(s?.name, `system skill ${index + 1}`),\n                Description: (s.description || '—').slice(0, 80),\n                Source: 'system',\n            });\n        }\n\n        if (!rows.length) {\n            throw new EmptyResultError('manus skills', 'No skills found.');\n        }\n\n        return rows;\n    },\n});\n","sourceCodeStart":38,"sourceCodeEnd":62,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/manus/skills.js#L38-L62","documentation":"The `manus skills` command successfully reached the ListSkills API and parsed it, but after collecting both user-added and system skills the resulting rows array was empty, so it throws this EmptyResultError. The API responded fine; it simply reported zero skills. The CLI throws instead of printing an empty table so callers can distinguish 'no data' from success.","triggerScenarios":"The authenticated Manus account has no user-added skills AND the API returned empty arrays for systemSkills/skills — e.g. a brand-new account, a payload where both keys exist but are [], or the system skill list endpoint returning empty for the region/account tier.","commonSituations":"Newly created Manus account with no custom skills; account on a tier where system skills aren't provisioned; transient Manus backend issue returning empty lists for an established account that does have skills.","solutions":["Add a skill in the Manus UI (or confirm skills exist there), then rerun `manus skills`.","Confirm the browser profile is logged into the account that actually owns the skills.","Retry later if Manus normally shows skills in the web UI but the CLI returns none — could be a transient backend issue.","If empty output is expected, catch EmptyResultError in your wrapper and treat it as a normal zero-skills result."],"exampleFix":"// wrapper handling an expected empty skill list\n// before\nconst skills = await run('manus skills');\n// after\ntry {\n  const skills = await run('manus skills');\n} catch (e) {\n  if (e instanceof EmptyResultError) return [];\n  throw e;\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  const rows = await run('manus skills');\n} catch (e) {\n  if (e instanceof EmptyResultError) {\n    console.log('Account has no skills (user or system).');\n    process.exitCode = 0;\n  } else throw e;\n}","preventionTips":["Treat EmptyResultError as an expected zero-rows outcome for account-level listings.","Verify in the Manus web UI that the account actually has skills before debugging the CLI.","Check you're on the intended account's browser profile before concluding the list is empty."],"tags":["empty-result","no-data","cli"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}