{"record":{"id":"b6c84e525a5840fe","repo":"DioxusLabs/dioxus","slug":"unsupported-abi-expected-swift-or-kotlin","errorCode":null,"errorMessage":"Unsupported ABI: {}. Expected 'Swift' or 'Kotlin'","messagePattern":"Unsupported ABI: (.+?)\\. Expected 'Swift' or 'Kotlin'","errorType":"validation","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"packages/manganis/manganis-macro/src/ffi.rs","lineNumber":290,"sourceCode":"        let lit: LitStr = input.parse()?;\n        Ok(FfiAttribute {\n            source_path: lit.value(),\n        })\n    }\n}\n\nimpl FfiBridgeParser {\n    /// Parse the attribute and item together\n    pub fn parse_with_attr(attr: FfiAttribute, item: ItemForeignMod) -> syn::Result<Self> {\n        let source_path = attr.source_path;\n\n        // Determine the ABI\n        let abi = match &item.abi.name {\n            Some(name) => match name.value().as_str() {\n                \"Swift\" => ForeignAbi::Swift,\n                \"Kotlin\" => ForeignAbi::Kotlin,\n                other => {\n                    return Err(syn::Error::new(\n                        name.span(),\n                        format!(\"Unsupported ABI: {}. Expected 'Swift' or 'Kotlin'\", other),\n                    ));\n                }\n            },\n            None => {\n                return Err(syn::Error::new(\n                    item.abi.extern_token.span,\n                    \"Expected ABI string (e.g., extern \\\"Swift\\\")\",\n                ));\n            }\n        };\n\n        let mut types = Vec::new();\n        let mut functions = Vec::new();\n\n        for item in &item.items {\n            match item {","sourceCodeStart":272,"sourceCodeEnd":308,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/393d190a801ccb441d41923e232289b4f8a5c669/packages/manganis/manganis-macro/src/ffi.rs#L272-L308","documentation":"Error \"Unsupported ABI: {}. Expected 'Swift' or 'Kotlin'\" thrown in DioxusLabs/dioxus.","triggerScenarios":"Thrown at packages/manganis/manganis-macro/src/ffi.rs:290 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"393d190a801ccb441d41923e232289b4f8a5c669","analyzedAt":"2026-08-16T11:27:45.815Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}