{"record":{"id":"12bac6287582f3f4","repo":"FuelLabs/fuels-ts","slug":"no-abis-found","errorCode":"NO_ABIS_FOUND","errorMessage":"no ABI found at '${inputs}'","messagePattern":"no ABI found at '(.+?)'","errorType":"exception","errorClass":"FuelError","httpStatus":null,"severity":"error","filePath":"packages/abi-typegen/src/runTypegen.ts","lineNumber":68,"sourceCode":"      `At least one parameter should be supplied: 'input' or 'filepaths'.`\n    );\n  }\n\n  /*\n    Assembling file paths x contents\n  */\n  const abiFiles = filepaths.map((filepath) => {\n    const contents = readFileSync(filepath, 'utf-8');\n    const abi: IFile = {\n      path: filepath,\n      contents,\n    };\n\n    return abi;\n  });\n\n  if (!abiFiles.length) {\n    throw new FuelError(ErrorCode.NO_ABIS_FOUND, `no ABI found at '${inputs}'`);\n  }\n\n  const binFiles = collectBinFilepaths({ filepaths, programType });\n\n  const storageSlotsFiles = collectStorageSlotsFilepaths({ filepaths, programType });\n\n  /*\n    Starting the engine\n  */\n  const abiTypeGen = new AbiTypeGen({\n    outputDir: output,\n    abiFiles,\n    binFiles,\n    storageSlotsFiles,\n    programType,\n    versions,\n  });\n","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/FuelLabs/fuels-ts/blob/b3f37c91aca4aa9d5e4c0d3967f66237190826ea/packages/abi-typegen/src/runTypegen.ts#L50-L86","documentation":"After runTypegen resolves inputs to filepaths and reads each into abiFiles, it asserts that at least one ABI file was loaded. A zero-length result means the supplied globs/paths matched nothing on disk (the filepaths array was empty after glob expansion).","triggerScenarios":"Supplying an `input` glob that resolves to no files (wrong cwd, wrong pattern); pointing at a directory containing no `-abi.json` files; glob syntax error that silently matches nothing.","commonSituations":"Running typegen from the wrong working directory; glob pattern with a typo (`abis/*.json` vs `abis/**/*-abi.json`); CI checkout missing the ABI artifacts step.","solutions":["Confirm the glob pattern matches files from the configured cwd (test with a glob library first).","Use absolute or repo-relative paths and verify the files exist before invoking typegen.","Ensure CI copies/generates ABI files before the typegen step."],"exampleFix":"// before\nrunTypegen({ input: ['abis/*.json'], cwd: '/wrong/dir', ... });\n\n// after\nimport { globSync } from 'glob';\nconst cwd = process.cwd();\nconst hits = globSync('abis/*-abi.json', { cwd });\nif (!hits.length) throw new Error('no ABIs matched');\nrunTypegen({ input: ['abis/*-abi.json'], cwd, ... });","handlingStrategy":"validation","validationCode":"import { globSync } from 'glob';\nfunction assertGlobHits(patterns: string[], cwd: string) {\n  const hits = patterns.flatMap(p => globSync(p, { cwd }));\n  if (!hits.length) throw new Error(`no ABI files matched ${patterns.join(', ')} in ${cwd}`);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Test your glob pattern with the same cwd before wiring it into typegen.","Use repo-relative or absolute paths in CI.","Ensure the ABI-generation step runs before typegen in CI."],"tags":["typegen","no-abis-found","glob","filesystem","ci"],"backgroundTag":null,"analyzedSha":"b3f37c91aca4aa9d5e4c0d3967f66237190826ea","analyzedAt":"2026-08-12T20:30:56.448Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}