{"record":{"id":"81efd0dd7ebe7db3","repo":"restsharp/RestSharp","slug":"a-default-parameters-with-the-same-name-has-alread","errorCode":null,"errorMessage":"A default parameters with the same name has already been added","messagePattern":"A default parameters with the same name has already been added","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/RestSharp/Parameters/DefaultParameters.cs","lineNumber":37,"sourceCode":"\npublic sealed class DefaultParameters(ReadOnlyRestClientOptions options) : ParametersCollection {\n    /// <summary>\n    /// Safely add a default parameter to the collection.\n    /// </summary>\n    /// <param name=\"parameter\">Parameter to add</param>\n    /// <returns></returns>\n    /// <exception cref=\"NotSupportedException\"></exception>\n    /// <exception cref=\"ArgumentException\"></exception>\n    [MethodImpl(MethodImplOptions.Synchronized)]\n    public DefaultParameters AddParameter(Parameter parameter) {\n        if (parameter.Type == ParameterType.RequestBody)\n            throw new NotSupportedException(\"Cannot set request body using default parameters. Use Request.AddBody() instead.\");\n\n        if (!options.AllowMultipleDefaultParametersWithSameName &&\n            parameter.Type != ParameterType.HttpHeader &&\n            !MultiParameterTypes.Contains(parameter.Type) &&\n            this.Any(x => x.Name == parameter.Name)) {\n            throw new ArgumentException(\"A default parameters with the same name has already been added\", nameof(parameter));\n        }\n\n        Parameters.Add(parameter);\n\n        return this;\n    }\n\n    /// <summary>\n    /// Safely removes all the default parameters with the given name and type.\n    /// </summary>\n    /// <param name=\"name\">Parameter name</param>\n    /// <param name=\"type\">Parameter type</param>\n    /// <returns></returns>\n    [PublicAPI]\n    [MethodImpl(MethodImplOptions.Synchronized)]\n    public DefaultParameters RemoveParameter(string name, ParameterType type) {\n        Parameters.RemoveAll(x => x.Name == name && x.Type == type);\n","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/restsharp/RestSharp/blob/6a5082169257438cd085f822f050d93256a8e499/src/RestSharp/Parameters/DefaultParameters.cs#L19-L55","documentation":"Thrown by DefaultParameters.AddParameter when AllowMultipleDefaultParametersWithSameName is false (the default) and a non-header, non-multiparameter default parameter with the same name already exists in the collection. Prevents accidental silent overwrite of defaults.","triggerScenarios":"Calling client.AddDefaultQueryParameter / AddDefaultUrlSegment / AddDefaultCookie (or AddParameter) twice with the same name while AllowMultipleDefaultParametersWithSameName is false.","commonSituations":"Looping over a dictionary and adding default query parameters without deduplication; re-registering a default segment after config change; framework re-initialization calling AddDefaultParameter twice.","solutions":["Call client.RemoveParameter(name, type) before re-adding, or use AddOrUpdateDefaultParameter if available.","Set RestClientOptions.AllowMultipleDefaultParametersWithSameName = true if duplicates are genuinely intended.","Deduplicate the source dictionary before adding default parameters."],"exampleFix":"// before\nforeach (var kvp in dict)\n    client.AddDefaultQueryParameter(kvp.Key, kvp.Value); // throws on duplicate key\n\n// after\nforeach (var g in dict.GroupBy(x => x.Key))\n    client.AddOrUpdateDefaultQueryParameter(g.Key, g.Last().Value);","handlingStrategy":"validation","validationCode":"if (!options.AllowMultipleDefaultParametersWithSameName && defaults.Any(p => p.Name == name)) throw new ArgumentException(\"Duplicate default parameter name\");","typeGuard":null,"tryCatchPattern":"try { client.AddDefaultQueryParameter(name, value); } catch (ArgumentException ex) when (ex.Message.Contains(\"same name has already been added\")) { /* use AddOrUpdate or remove first */ }","preventionTips":["Use AddOrUpdateDefaultParameter when re-registration is possible.","Set AllowMultipleDefaultParametersWithSameName = true if duplicates are intended.","Deduplicate source dictionaries before bulk-adding default parameters."],"tags":["parameters","default-parameters","duplicate","configuration"],"backgroundTag":null,"analyzedSha":"6a5082169257438cd085f822f050d93256a8e499","analyzedAt":"2026-08-13T20:38:25.807Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}