DioxusLabs/dioxus · error · syn::Error

Invalid Option type

Error message

Invalid Option type

What it means

Error "Invalid Option type" thrown in DioxusLabs/dioxus.

Source

Thrown at packages/manganis/manganis-macro/src/ffi.rs:81

                        "i8" => return Ok(ForeignType::I8),
                        "i16" => return Ok(ForeignType::I16),
                        "i32" => return Ok(ForeignType::I32),
                        "i64" => return Ok(ForeignType::I64),
                        "u8" => return Ok(ForeignType::U8),
                        "u16" => return Ok(ForeignType::U16),
                        "u32" => return Ok(ForeignType::U32),
                        "u64" => return Ok(ForeignType::U64),
                        "f32" => return Ok(ForeignType::F32),
                        "f64" => return Ok(ForeignType::F64),
                        "String" => return Ok(ForeignType::String),
                        "Option" => {
                            if let syn::PathArguments::AngleBracketed(args) = &segment.arguments
                                && let Some(syn::GenericArgument::Type(inner)) = args.args.first()
                            {
                                let inner_type = Self::from_type(inner)?;
                                return Ok(ForeignType::Option(Box::new(inner_type)));
                            }
                            return Err(syn::Error::new(ty.span(), "Invalid Option type"));
                        }
                        "Result" => {
                            if let syn::PathArguments::AngleBracketed(args) = &segment.arguments {
                                let mut iter = args.args.iter();
                                if let (
                                    Some(syn::GenericArgument::Type(ok_ty)),
                                    Some(syn::GenericArgument::Type(err_ty)),
                                ) = (iter.next(), iter.next())
                                {
                                    let ok_type = Self::from_type(ok_ty)?;
                                    let err_type = Self::from_type(err_ty)?;
                                    return Ok(ForeignType::Result(
                                        Box::new(ok_type),
                                        Box::new(err_type),
                                    ));
                                }
                            }
                            return Err(syn::Error::new(ty.span(), "Invalid Result type"));

View on GitHub (pinned to 393d190a80)

When it happens

Trigger: Thrown at packages/manganis/manganis-macro/src/ffi.rs:81 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@393d190a80 (2026-08-16). Data as JSON: /api/errors/c1a0f25e89a08b46. Report an issue: GitHub.