{"record":{"id":"86c98a15e752863b","repo":"owasp-amass/amass","slug":"failed-to-parse-address","errorCode":null,"errorMessage":"failed to parse address","messagePattern":"failed to parse address","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/libpostal/cgo_specific.go","lineNumber":80,"sourceCode":"\n\tcOptions := C.libpostal_get_address_parser_default_options()\n\tif options.Language != \"\" {\n\t\tcLanguage := C.CString(options.Language)\n\t\tdefer C.free(unsafe.Pointer(cLanguage))\n\n\t\tcOptions.language = cLanguage\n\t}\n\n\tif options.Country != \"\" {\n\t\tcCountry := C.CString(options.Country)\n\t\tdefer C.free(unsafe.Pointer(cCountry))\n\n\t\tcOptions.country = cCountry\n\t}\n\n\tcAddressParserResponsePtr := C.libpostal_parse_address(cAddress, cOptions)\n\tif cAddressParserResponsePtr == nil {\n\t\treturn nil, errors.New(\"failed to parse address\")\n\t}\n\tcAddressParserResponse := *cAddressParserResponsePtr\n\n\tcNumComponents := cAddressParserResponse.num_components\n\tcComponents := cAddressParserResponse.components\n\tcLabels := cAddressParserResponse.labels\n\tnumComponents := uint64(cNumComponents)\n\tparsedComponents := make([]ParsedComponent, numComponents)\n\n\t// Accessing a C array\n\tcComponentsPtr := (*[1 << 30](*C.char))(unsafe.Pointer(cComponents))[:numComponents:numComponents]\n\tcLabelsPtr := (*[1 << 30](*C.char))(unsafe.Pointer(cLabels))[:numComponents:numComponents]\n\n\tvar i uint64\n\tfor i = range numComponents {\n\t\tparsedComponents[i] = ParsedComponent{\n\t\t\tLabel: C.GoString(cLabelsPtr[i]),\n\t\t\tValue: C.GoString(cComponentsPtr[i]),","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/owasp-amass/amass/blob/79299dce87b0085db0f2f4ef3e9c52cccb49f514/internal/libpostal/cgo_specific.go#L62-L98","documentation":"The C call libpostal_parse_address returned a NULL response pointer, meaning libpostal itself failed to parse the (valid UTF-8) address string with the given parser options. This is a generic nil-result guard around the C API; common causes are empty/whitespace input or missing libpostal language data for the requested options.","triggerScenarios":"Thrown at internal/libpostal/cgo_specific.go:80 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Trim whitespace and reject empty address strings before invoking the parser","Check that libpostal's data files cover the requested language/country options","Fall back to returning the raw address as a single component when parsing is not critical to the caller"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"79299dce87b0085db0f2f4ef3e9c52cccb49f514","analyzedAt":"2026-09-06T08:22:48.198Z","contentChangedAt":"2026-09-06T08:22:48.198Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}