{"record":{"id":"9c9fc69a3e279824","repo":"dotnet/reactive","slug":"tenth","errorCode":null,"errorMessage":"tenth","messagePattern":"tenth","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs","lineNumber":2190,"sourceCode":"                throw new ArgumentNullException(nameof(first));\n            if (second == null)\n                throw new ArgumentNullException(nameof(second));\n            if (third == null)\n                throw new ArgumentNullException(nameof(third));\n            if (fourth == null)\n                throw new ArgumentNullException(nameof(fourth));\n            if (fifth == null)\n                throw new ArgumentNullException(nameof(fifth));\n            if (sixth == null)\n                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)>>(Zip<TFirst, TSecond, TThird, TFourth, TFifth, TSixth, TSeventh, TEighth, TNinth, TTenth, TEleventh, TTwelfth, TThirteenth, TFourteenth, TFifteenth, TSixteenth>).Method,\n                    first.Expression,","sourceCodeStart":2172,"sourceCodeEnd":2208,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs#L2172-L2208","documentation":"ArgumentNullException with parameter name 'tenth' thrown from the Zip null-validation chain at QbservableEx.Homoicon.cs:2190. The 10+-ary Zip overload requires every source sequence to be non-null; a null tenth argument aborts the call immediately.","triggerScenarios":"Calling a 10+-ary QbservableEx.Zip with tenth == null after first-ninth passed validation.","commonSituations":"Very large zips built by generators/templates where a slot is skipped; one source obtained from a cache miss returning null; copy-paste edits of long Zip argument lists.","solutions":["Supply a valid non-null tenth source sequence.","Use the correct-arity overload for the sources you have.","Fix the cache/factory so it returns a sequence (or an empty one) instead of null.","Add an up-front loop validating every argument with its index."],"exampleFix":"// before\nvar zipped = QbservableEx.Zip(q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, selector); // q10 null\n// after\nvar q10 = GetTenthSource();\nArgumentNullException.ThrowIfNull(q10);\nvar zipped = QbservableEx.Zip(q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, selector);","handlingStrategy":"validation","validationCode":"var sources = new IQbservable<int>?[] { q1, q2, q3, q4, q5, q6, q7, q8, q9, q10 };\nif (sources.Contains(null)) throw new InvalidOperationException(\"null Zip source\");","typeGuard":"bool Complete<TSource>(IQbservable<TSource>?[] xs) => xs.Length == 10 && xs.All(x => x is not null);","tryCatchPattern":"try { /* zip call */ }\ncatch (ArgumentNullException ex) when (ex.ParamName == \"tenth\")\n{\n    // substitute a shorter overload or alert\n}","preventionTips":["Generate wide zips from a validated collection instead of hand-written argument lists.","Fix cache-miss paths to return empty sequences, not null.","Add a startup self-check that builds each production query once."],"tags":["argument-null","validation","rx","qbservable"],"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"}