{"record":{"id":"9c411110f864c8e6","repo":"DioxusLabs/dioxus","slug":"keyword-argument-repeated-input-derive","errorCode":null,"errorMessage":"keyword argument repeated: `input_derive`","messagePattern":"keyword argument repeated: `input_derive`","errorType":"validation","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"packages/fullstack-macro/src/lib.rs","lineNumber":1604,"sourceCode":"                        }\n                        fn_path = Some(stream.parse()?);\n                    } else if key == \"input\" {\n                        if encoding.is_some() {\n                            return Err(syn::Error::new(\n                                key.span(),\n                                \"`encoding` and `input` should not both be \\\n                                 specified\",\n                            ));\n                        } else if input.is_some() {\n                            return Err(syn::Error::new(\n                                key.span(),\n                                \"keyword argument repeated: `input`\",\n                            ));\n                        }\n                        input = Some(stream.parse()?);\n                    } else if key == \"input_derive\" {\n                        if input_derive.is_some() {\n                            return Err(syn::Error::new(\n                                key.span(),\n                                \"keyword argument repeated: `input_derive`\",\n                            ));\n                        }\n                        input_derive = Some(stream.parse()?);\n                    } else if key == \"output\" {\n                        if encoding.is_some() {\n                            return Err(syn::Error::new(\n                                key.span(),\n                                \"`encoding` and `output` should not both be \\\n                                 specified\",\n                            ));\n                        } else if output.is_some() {\n                            return Err(syn::Error::new(\n                                key.span(),\n                                \"keyword argument repeated: `output`\",\n                            ));\n                        }","sourceCodeStart":1586,"sourceCodeEnd":1622,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/393d190a801ccb441d41923e232289b4f8a5c669/packages/fullstack-macro/src/lib.rs#L1586-L1622","documentation":"`input_derive = ...` adds `#[derive(...)]` attributes to the generated input wrapper type for a `#[server]` function; like every keyword here it may be set only once (packages/fullstack-macro/src/lib.rs:1602-1608).","triggerScenarios":"`#[server(input_derive(Deserialize), input_derive(Clone))]`; adding a second derive while migrating from `encoding` (where derives came bundled) to explicit keys; merge conflicts leaving two `input_derive` entries.","commonSituations":"Not realizing multiple derives go in ONE `input_derive(...)` list; copy-paste of an example that already had `input_derive`; version upgrades moving derives from `encoding` sugar to the explicit key.","solutions":["Combine all derives into a single `input_derive(Clone, Debug, Deserialize)` list.","Delete the duplicated `input_derive` entry.","Check `output_derive` for the same duplication pattern while you are there."],"exampleFix":"// before\n#[server(input_derive(Clone), input_derive(Deserialize))]\nasync fn run(task: Task) { ... }\n\n// after\n#[server(input_derive(Clone, Deserialize))]\nasync fn run(task: Task) { ... }","handlingStrategy":"validation","validationCode":"# Reuse the duplicate-key checker from index 93; input_derive is in its key list.","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Multiple derives belong in one list: input_derive(Clone, Debug, Deserialize).","Check output_derive at the same time — the same duplication habit applies."],"tags":["dioxus","proc-macro","server-functions","macro-args","compile-time"],"backgroundTag":null,"analyzedSha":"393d190a801ccb441d41923e232289b4f8a5c669","analyzedAt":"2026-08-16T11:27:45.815Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}