{"record":{"id":"e91466620d8b5858","repo":"dotnet/reactive","slug":"value-cannot-be-null-parameter-fifteenth-qbservableex","errorCode":null,"errorMessage":"Value cannot be null. (Parameter 'fifteenth')","messagePattern":"Value cannot be null\\. \\(Parameter 'fifteenth'\\)","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs","lineNumber":2106,"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\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)>(\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>, 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)>>(Zip<TFirst, TSecond, TThird, TFourth, TFifth, TSixth, TSeventh, TEighth, TNinth, TTenth, TEleventh, TTwelfth, TThirteenth, TFourteenth, TFifteenth>).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),\n                    GetSourceExpression(twelfth),\n                    GetSourceExpression(thirteenth),","sourceCodeStart":2088,"sourceCodeEnd":2124,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs#L2088-L2124","documentation":"System.Reactive's Qbservable.Zip overload for 15 sources validates every argument up front and throws ArgumentNullException when any source sequence is null. Qbservable operators build an expression tree via first.Provider.CreateQuery, so a null argument cannot be represented in the expression and is rejected eagerly at call time rather than at subscription time. The parameter name in the message ('fifteenth') identifies exactly which source was null.","triggerScenarios":"Calling the 15-source QbservableEx.Zip extension with the fifteenth IObservable<TFifteenth> argument null while the other fourteen are non-null sequences.","commonSituations":"Building Zip sources from a collection or factory where the last entry is missing/null; optional integrations whose observable is null when disabled; copy-paste of multi-source Zip calls that omits the final source.","solutions":["Ensure the fifteenth argument passed to Zip is a non-null IObservable<TFifteenth> (e.g. Observable.Empty<TFifteenth>() instead of null)","Check where the fifteenth sequence is produced and fix the code returning null","Guard with ?? Observable.Empty<T>() if a null source is legitimately possible","Validate all arguments before calling Zip in dynamic scenarios"],"exampleFix":"// before\nvar zipped = first.Zip(second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, fifteenth!);\n// after\nvar safe15 = fifteenthSource ?? Observable.Empty<TFifteenth>();\nvar zipped = first.Zip(second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, safe15);","handlingStrategy":"validation","validationCode":"var sources = new IObservable<object>[] { second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, fifteenth };\nif (sources.Any(s => s == null)) throw new InvalidOperationException(\"All 15 Zip sources must be non-null\");","typeGuard":null,"tryCatchPattern":"try { var zipped = first.Zip(..., fourteenth, fifteenth); }\ncatch (ArgumentNullException ex) when (ex.ParamName == \"fifteenth\") { /* substitute Observable.Empty<TFifteenth>() and retry */ }","preventionTips":["Substitute Observable.Empty<T>() for any legitimately absent source instead of null","Validate the tail sources of long Zip argument lists — omissions cluster at the end of the list","Enable nullable reference types so null flows are caught at compile time","Store sources in a checked collection rather than loose variables for large arities"],"tags":["rx","argument-null","qbservable","zip"],"backgroundTag":"null-argument","analyzedSha":"94b5d5ab912789f5abe9a72138a25bbd716fe59c","analyzedAt":"2026-09-15T02:26:24.759Z","contentChangedAt":"2026-09-15T02:26:24.759Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}