{"record":{"id":"e377c0e201cfa385","repo":"dotnet/reactive","slug":"eleventh","errorCode":null,"errorMessage":"eleventh","messagePattern":"eleventh","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs","lineNumber":2192,"sourceCode":"                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,\n                    GetSourceExpression(second),\n                    GetSourceExpression(third),","sourceCodeStart":2174,"sourceCodeEnd":2210,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs#L2174-L2210","documentation":"ArgumentNullException with parameter name 'eleventh' thrown at QbservableEx.Homoicon.cs:2192 by the Zip argument checks. Rx.NET's n-ary Zip validates each source sequence eagerly and throws ArgumentNullException naming the first null slot; here that is the eleventh argument.","triggerScenarios":"Calling an 11+-ary QbservableEx.Zip where the eleventh source IQbservable is null and the preceding ten are valid.","commonSituations":"Dynamically generated Zip calls (code generation, expression builders) that emit placeholders for optional sources; merging streams where one remote queryable endpoint failed to produce a sequence object; unassigned fields in large orchestration setup code.","solutions":["Pass a non-null eleventh source sequence.","Drop optional sources and use a lower-arity overload (or Zip in stages).","Fix the generator/factory so it emits a real sequence for every slot.","Pre-validate the argument list and log which index is null."],"exampleFix":"// before\nvar zipped = ZipMany(builder.Sources, selector); // Sources[10] == null\n// after\nvar args = builder.Sources.Select(s => s ?? Observable.Empty<T>().AsQbservable()).ToArray();\nvar zipped = ZipMany(args, selector);","handlingStrategy":"validation","validationCode":"if (args.Length < 11 || args.Take(11).Any(a => a is null))\n    throw new InvalidOperationException(\"Zip requires 11 non-null sources\");","typeGuard":"bool HasElevenSources<TSource>(IQbservable<TSource>?[] xs) => xs.Take(11).All(x => x is not null);","tryCatchPattern":"try { /* zip call */ }\ncatch (ArgumentNullException ex) when (ex.ParamName == \"eleventh\")\n{\n    logger.LogError(ex, \"Optional source #11 absent\");\n}","preventionTips":["When codegen emits optional slots, emit a lower-arity overload rather than null.","Keep generated Zip calls under review when signatures change.","Validate the source collection shape before query composition."],"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"}