{"record":{"id":"9ade6b073ea756db","repo":"quasarframework/quasar","slug":"tool-could-not-build","errorCode":null,"errorMessage":"${tool} could not build","messagePattern":"(.+?) could not build","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app-vite/lib/modes/electron/electron-builder.js","lineNumber":204,"sourceCode":"    const bundlePromise =\n      bundlerName === 'packager'\n        ? bundler({\n            ...bundlerConfig,\n            electronVersion: getPackageJson('electron', appPaths.electronDir)\n              .version\n          })\n        : bundler.build(bundlerConfig)\n\n    bundlePromise\n      .then(() => {\n        log()\n        done()\n        log()\n        resolve()\n      })\n      .catch(err => {\n        log()\n        warn(`${tool} could not build`, 'FAIL')\n        log()\n        console.error(err + '\\n')\n        reject(err)\n      })\n\n    return promise\n  }\n}\n","sourceCodeStart":186,"sourceCodeEnd":213,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/electron/electron-builder.js#L186-L213","documentation":"In Electron mode packaging, Quasar invokes an external packager tool (electron-packager or electron-builder, chosen via the bundler/`bundler` and target settings). If the tool's promise rejects, this warning is printed with a FAIL badge, the underlying error is logged to console, and the packaging promise is rejected.","triggerScenarios":"#packageFiles in electron-builder.js when the packager's returned promise rejects — e.g. electron-builder failing on missing build resources/icons, invalid `electron.bundlerBuilder` config in package.json, no matching targets, or network failure downloading Electron binaries.","commonSituations":"Missing/oversized icon files (electron-builder requires specific sizes/format); misconfigured `build` section in package.json; offline CI unable to download the Electron dist zip; signing/notarization failures on macOS; insufficient disk space.","solutions":["Read the error logged below the warning (console.error(err)) — it contains the actual packager failure and points at the offending config or resource.","Fix electron-builder/packager config: check package.json > build (or quasar.config > electron > bundler/unpacker options), icons, and target list.","Re-run with a network available or a cached Electron dist (ELECTRON_MIRROR / electron-builder cache) if the cause was downloading binaries.","Try the other bundler (quasar.config electron > bundler: 'packager' vs 'builder') to isolate whether the issue is tool-specific."],"exampleFix":"// quasar.config.js — before\nelectron: { bundler: 'builder' } // failing due to bad build config\n// after: fix package.json build section or switch bundler\nelectron: { bundler: 'packager' }","handlingStrategy":"try-catch","validationCode":"// pre-flight checks before electron packaging\nconst fs = require('fs');\nconst pkg = require(process.cwd() + '/package.json');\nif (!fs.existsSync('src-electron')) throw new Error('src-electron missing');\nif (fs.existsSync('src-electron/icons') && !fs.readdirSync('src-electron/icons').length) throw new Error('electron icons folder is empty');","typeGuard":null,"tryCatchPattern":"try {\n  await quasarBuild({ mode: 'electron' });\n} catch (err) {\n  // err matches the console.error output from electron-builder.js:204\n  console.error('Electron packager failed:', err.message);\n  // fall back to the other bundler or re-run with verbose logging\n  process.exitCode = 1;\n}","preventionTips":["Keep the electron-builder `build` section in package.json valid; validate icons (correct format/sizes) and target definitions.","Ensure CI has network access or a warm electron-builder cache for downloading Electron binaries.","Run `quasar build -m electron` locally after every change to electron config or icons.","Isolate tool-specific failures by temporarily switching bundler between 'packager' and 'builder'."],"tags":["electron","packaging","electron-builder","external-tool"],"backgroundTag":"electron-packager-failed","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}