{"record":{"id":"9deb30b742192c72","repo":"dotnet/reactive","slug":"throw-new-argumentnullexception-nameof-fifteenth","errorCode":null,"errorMessage":"throw new ArgumentNullException(nameof(fifteenth))","messagePattern":"throw new ArgumentNullException\\(nameof\\(fifteenth\\)\\)","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs","lineNumber":924,"sourceCode":"                throw new ArgumentNullException(nameof(sixth));\n            if (seventh == null)\n                throw new ArgumentNullException(nameof(seventh));\n            if (eighth == null)\n                throw new ArgumentNullException(nameof(eighth));\n            if (ninth == null)\n                throw new ArgumentNullException(nameof(ninth));\n            if (tenth == null)\n                throw new ArgumentNullException(nameof(tenth));\n            if (eleventh == null)\n                throw new ArgumentNullException(nameof(eleventh));\n            if (twelfth == null)\n                throw new ArgumentNullException(nameof(twelfth));\n            if (thirteenth == null)\n                throw new ArgumentNullException(nameof(thirteenth));\n            if (fourteenth == null)\n                throw new ArgumentNullException(nameof(fourteenth));\n            if (fifteenth == null)\n                throw new ArgumentNullException(nameof(fifteenth));\n            if (sixteenth == null)\n                throw new ArgumentNullException(nameof(sixteenth));\n\n            return first.Provider.CreateQuery<(TFirst First, TSecond Second, TThird Third, TFourth Fourth, TFifth Fifth, TSixth Sixth, TSeventh Seventh, TEighth Eighth, TNinth Ninth, TTenth Tenth, TEleventh Eleventh, TTwelfth Twelfth, TThirteenth Thirteenth, TFourteenth Fourteenth, TFifteenth Fifteenth, TSixteenth Sixteenth)>(\n                Expression.Call(\n                    null,\n                    new Func<IQbservable<TFirst>, IObservable<TSecond>, IObservable<TThird>, IObservable<TFourth>, IObservable<TFifth>, IObservable<TSixth>, IObservable<TSeventh>, IObservable<TEighth>, IObservable<TNinth>, IObservable<TTenth>, IObservable<TEleventh>, IObservable<TTwelfth>, IObservable<TThirteenth>, IObservable<TFourteenth>, IObservable<TFifteenth>, IObservable<TSixteenth>, IQbservable<(TFirst First, TSecond Second, TThird Third, TFourth Fourth, TFifth Fifth, TSixth Sixth, TSeventh Seventh, TEighth Eighth, TNinth Ninth, TTenth Tenth, TEleventh Eleventh, TTwelfth Twelfth, TThirteenth Thirteenth, TFourteenth Fourteenth, TFifteenth Fifteenth, TSixteenth Sixteenth)>>(CombineLatest<TFirst, TSecond, TThird, TFourth, TFifth, TSixth, TSeventh, TEighth, TNinth, TTenth, TEleventh, TTwelfth, TThirteenth, TFourteenth, TFifteenth, TSixteenth>).Method,\n                    first.Expression,\n                    GetSourceExpression(second),\n                    GetSourceExpression(third),\n                    GetSourceExpression(fourth),\n                    GetSourceExpression(fifth),\n                    GetSourceExpression(sixth),\n                    GetSourceExpression(seventh),\n                    GetSourceExpression(eighth),\n                    GetSourceExpression(ninth),\n                    GetSourceExpression(tenth),\n                    GetSourceExpression(eleventh),","sourceCodeStart":906,"sourceCodeEnd":942,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs#L906-L942","documentation":"System.ArgumentNullException raised by the null-guard for the fifteenth source in a CombineLatest overload in QbservableEx.Homoicon.cs. This 16-source overload checks each argument in order and failed because the fifteenth source was null, so the remote query expression was never constructed.","triggerScenarios":"Invoking the 15+ argument Qbservable.CombineLatest overload with fifteenth == null at line 924 of the guard chain.","commonSituations":"Fifteenth stream of an extreme-arity query is optional and unassigned; config-driven stream registry lacks an entry so the lookup returns null.","solutions":["Supply a non-null fifteenth IQbservable source.","Default optional fifteenth stream to an empty sequence through the provider.","Fix the registry/config lookup so it returns a valid stream.","Split the composition into smaller grouped CombineLatest calls to reduce error-prone argument lists."],"exampleFix":"// before\nCombineLatest(s1,...,s14, fifteenth, sel); // fifteenth == null\n// after\nfifteenth ??= provider.CreateQuery<T15>(Expression.Constant(Observable.Empty<T15>()));\nCombineLatest(s1,...,s14, fifteenth, sel);","handlingStrategy":"validation","validationCode":"if (s15 == null) s15 = provider.CreateQuery<T15>(Expression.Constant(Observable.Empty<T15>()));","typeGuard":"static bool IsNonNullSource<T>(IQbservable<T> s) => s != null;","tryCatchPattern":"try { CombineLatest(..., s15, ...); } catch (ArgumentNullException ex) when (ex.ParamName == \"fifteenth\") { /* supply default and retry */ }","preventionTips":["Ensure config-driven stream registries always return a stream","Null-coalesce optional fifteenth sources before calling","Refactor 15+ arity queries into grouped combines","Add pre-composition validation of the entire source list"],"tags":["argumentnull","qbservable","combinelatest"],"backgroundTag":"null-argument","analyzedSha":"94b5d5ab912789f5abe9a72138a25bbd716fe59c","analyzedAt":"2026-09-15T02:26:24.759Z","contentChangedAt":"2026-09-15T02:26:24.759Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}