{"record":{"id":"e31f9c97da655f17","repo":"FuelLabs/fuels-ts","slug":"coder-not-found","errorCode":"CODER_NOT_FOUND","errorMessage":"Coder not found: ${JSON.stringify(resolvedAbiType)}.","messagePattern":"Coder not found: (.+?)\\.","errorType":"exception","errorClass":"FuelError","httpStatus":null,"severity":"error","filePath":"packages/abi-coder/src/encoding/strategies/getCoderV1.ts","lineNumber":155,"sourceCode":"  }\n\n  const enumMatch = enumRegEx.test(resolvedAbiType.type);\n  if (enumMatch && coderName) {\n    const coders = getCoders(components, { getCoder });\n    const isOptionEnum = resolvedAbiType.type === OPTION_CODER_TYPE;\n    if (isOptionEnum) {\n      return new OptionCoder(coderName, coders);\n    }\n    return new EnumCoder(coderName, coders);\n  }\n\n  const tupleMatch = tupleRegEx.exec(resolvedAbiType.type)?.groups;\n  if (tupleMatch) {\n    const coders = components.map((component) => getCoder(component, { encoding: ENCODING_V1 }));\n    return new TupleCoder(coders as Coder[]);\n  }\n\n  throw new FuelError(\n    ErrorCode.CODER_NOT_FOUND,\n    `Coder not found: ${JSON.stringify(resolvedAbiType)}.`\n  );\n};\n","sourceCodeStart":137,"sourceCodeEnd":160,"githubUrl":"https://github.com/FuelLabs/fuels-ts/blob/b3f37c91aca4aa9d5e4c0d3967f66237190826ea/packages/abi-coder/src/encoding/strategies/getCoderV1.ts#L137-L160","documentation":"The terminal fallthrough of getCoderV1: every recognized Sway type shape (array, vec, enum, option, tuple, primitive, struct) has been tested via regex/component matching, and none matched. The full resolvedAbiType is JSON-stringified into the message so the unsupported shape is visible.","triggerScenarios":"An ABI type whose `type` string is not recognized by any of the regex matchers (arrayRegEx, tupleRegEx, VEC_CODER_TYPE, enum/option shapes) and is not a registered primitive. Typical with custom or newly introduced Sway type forms.","commonSituations":"Using a Sway compiler version newer than the SDK supports; ABI referencing a generic or advanced type the coder does not yet handle; ABI hand-crafted with a type string that does not match Sway grammar.","solutions":["Read the JSON-stringified resolvedAbiType in the error to identify the unrecognized `type` string.","Upgrade @fuel-ts/abi-coder (and the wider SDK) to a version that supports your Sway compiler output.","Simplify the offending Sway type to one the SDK recognizes and rebuild the ABI.","If you control the ABI, correct the malformed `type` field to a valid Sway type expression."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"function assertAllTypesResolved(abi: JsonAbi) {\n  // walk every type through getCoder in a try/catch and collect failures\n  const unresolved: string[] = [];\n  for (const t of abi.types) {\n    try { getCoder(new ResolvedAbiType(abi, t)); }\n    catch { unresolved.push(`${t.typeId}: ${t.type}`); }\n  }\n  if (unresolved.length) throw new Error('unsupported types: ' + unresolved.join(', '));\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep @fuel-ts/abi-coder version aligned with your Sway compiler version.","Validate every ABI type resolves to a coder before hot-path use.","Avoid advanced/generic Sway types the SDK does not advertise support for."],"tags":["abi-coder","coder-not-found","abi-validation","sway-version"],"backgroundTag":null,"analyzedSha":"b3f37c91aca4aa9d5e4c0d3967f66237190826ea","analyzedAt":"2026-08-12T20:30:56.448Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}