{"record":{"id":"16e1ad579ed2ca33","repo":"diesel-rs/diesel","slug":"unexpected-array-oid-when-name-is-present-help","errorCode":null,"errorMessage":"unexpected `array_oid` when `name` is present\nhelp: {help}","messagePattern":"unexpected `array_oid` when `name` is present\nhelp: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"diesel_attribute_parser/src/parsers/postgres_type.rs","lineNumber":82,"sourceCode":"    pub fn validate_and_build(\n        input: ParseStream,\n        oid: Option<(Ident, LitInt)>,\n        array_oid: Option<(Ident, LitInt)>,\n        name: Option<(Ident, LitStr)>,\n        schema: Option<(Ident, LitStr)>,\n    ) -> Result<Self> {\n        let help = format!(\n            \"the correct format looks like either `#[diesel({POSTGRES_TYPE_NOTE})]` or `#[diesel({POSTGRES_TYPE_NOTE_ID})]`\"\n        );\n\n        if let Some((_, name)) = name {\n            if let Some((oid, _)) = oid {\n                Err(syn::Error::new(\n                    oid.span(),\n                    format!(\"unexpected `oid` when `name` is present\\nhelp: {help}\"),\n                ))\n            } else if let Some((array_oid, _)) = array_oid {\n                Err(syn::Error::new(\n                    array_oid.span(),\n                    format!(\"unexpected `array_oid` when `name` is present\\nhelp: {help}\"),\n                ))\n            } else {\n                Ok(PostgresType::Lookup(name, schema.map(|s| s.1)))\n            }\n        } else if let Some((schema, lit)) = schema {\n            Err(syn::Error::new(\n                schema.span(),\n                format!(\n                    \"expected `name` to be also present\\n\\\n                     help: make sure `name` is present, `#[diesel(postgres_type(name = \\\"...\\\", schema = \\\"{}\\\"))]`\",\n                    lit.value()\n                ),\n            ))\n        } else if let (Some((_, oid)), Some((_, array_oid))) = (oid, array_oid) {\n            Ok(PostgresType::Fixed(oid, array_oid))\n        } else {","sourceCodeStart":64,"sourceCodeEnd":100,"githubUrl":"https://github.com/diesel-rs/diesel/blob/6fa6ed01b24b24248ab2a611698d0a7c6a2e9120/diesel_attribute_parser/src/parsers/postgres_type.rs#L64-L100","documentation":"Compile-time error validating #[diesel(postgres_type(...))] arguments. Name-based lookup and array_oid-based lookup are mutually exclusive; this guard fires when `name = \"...\"` is supplied together with `array_oid = ...` in the same attribute. Fix: drop `array_oid` when identifying the type by `name`, or drop `name` to use the oid form.","triggerScenarios":"Thrown at diesel_attribute_parser/src/parsers/postgres_type.rs:82 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove `array_oid` and keep `name` for lookup by name","Drop `name` and provide `oid`/`array_oid` instead"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6fa6ed01b24b24248ab2a611698d0a7c6a2e9120","analyzedAt":"2026-09-07T01:50:13.074Z","contentChangedAt":"2026-09-07T01:50:13.074Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}