{"record":{"id":"82236ab7a9f2a769","repo":"quasarframework/quasar","slug":"no-source-icon-file-specified-so-using-the-sample","errorCode":null,"errorMessage":"No source icon file specified, so using the sample one","messagePattern":"No source icon file specified, so using the sample one","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"icongenie/lib/utils/parse-argv.js","lineNumber":139,"sourceCode":"\n  if (isAbsolute(__path)) {\n    return existsSync(__path) ? __path : null\n  }\n\n  let localIcon = resolve(process.cwd(), __path)\n\n  if (existsSync(localIcon)) {\n    return localIcon\n  }\n\n  localIcon = resolve(appDir, __path)\n\n  return existsSync(localIcon) ? localIcon : null\n}\n\nfunction icon(value, argv) {\n  if (!value) {\n    warn(`No source icon file specified, so using the sample one`)\n    argv.icon = normalize(\n      join(import.meta.dirname, '../../samples/icongenie-icon.png')\n    )\n    return\n  }\n\n  argv.icon = parseIconPath(value)\n\n  if (!argv.icon) {\n    die(`Path to source icon file does not exists: \"${value}\"`)\n  }\n\n  const { width, height } = getPngSize(argv.icon)\n\n  if (width === 0 && height === 0) {\n    die(`Icon source is not a PNG file!`)\n  }\n","sourceCodeStart":121,"sourceCodeEnd":157,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/icongenie/lib/utils/parse-argv.js#L121-L157","documentation":"The icon() argv parser in icongenie checks for a source icon path; when none is given, it warns and falls back to the bundled sample icon (samples/icongenie-icon.png). Generation still proceeds, but output icons are based on Quasar's placeholder image, not your icon.","triggerScenarios":"Running `icongenie generate` (or `quasar icongenie g`) without -i/--icon and without an 'icon' entry in the profile, in a folder lacking any detectable default icon.","commonSituations":"Forgetting the -i flag on first run, a mistyped icon path treated as falsy, or scripted CI calls that omit the icon parameter.","solutions":["Pass your source icon explicitly: icongenie g --icon path/to/icon.png","Set the icon field in your icongenie-*.json profile","If the sample icon was unintended, delete the generated assets and regenerate after adding --icon"],"exampleFix":"// before\nicongenie g --mode all\n// after\nicongenie g --mode all --icon src/assets/logo-1024x1024.png","handlingStrategy":"validation","validationCode":"import { existsSync } from 'node:fs'\nconst iconPath = argv.icon || profile.icon\nif (!iconPath || !existsSync(iconPath)) {\n  throw new Error('Source icon missing: pass -i/--icon or set icon in the profile')\n}","typeGuard":"const hasIcon = (opts) => typeof opts?.icon === 'string' && opts.icon.length > 0 && existsSync(opts.icon)","tryCatchPattern":null,"preventionTips":["Always pass --icon with an absolute or project-relative path","Declare icon in your icongenie profile so it is versioned","Check the generated icons visually once to catch accidental sample-icon use"],"tags":["icongenie","missing-argument","fallback"],"backgroundTag":"missing-source-icon","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}