{"record":{"id":"f1f904e6f4d3fd69","repo":"dotnet/reactive","slug":"twelfth","errorCode":null,"errorMessage":"twelfth","messagePattern":"twelfth","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs","lineNumber":2194,"sourceCode":"                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),\n                    GetSourceExpression(fourth),\n                    GetSourceExpression(fifth),","sourceCodeStart":2176,"sourceCodeEnd":2212,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Homoicon.cs#L2176-L2212","documentation":"ArgumentNullException with parameter name 'twelfth' thrown from the Zip null-check block at QbservableEx.Homoicon.cs:2194. The library requires all twelve-plus source sequences of the n-ary Zip overload to be non-null and throws immediately, identifying 'twelfth' as the null parameter.","triggerScenarios":"Calling a 12+-ary QbservableEx.Zip overload with twelfth == null; the first eleven arguments validated successfully.","commonSituations":"Hand-maintained 12-argument Zip calls after a signature change; sources assembled from a services collection where one element was removed but the Zip call wasn't updated; generated code paths with optional sources.","solutions":["Provide a non-null twelfth sequence.","Use the arity-matched overload or split into smaller Zips (e.g. Zip( Zip(1..6), Zip(7..12) )).","Fix the source-assembly code that leaves the twelfth slot null.","Guard all arguments with a single validation helper before composing."],"exampleFix":"// before\nvar zipped = QbservableEx.Zip(q1, ..., q12, selector); // q12 null\n// after\nvar q12 = GetTwelfthSource() ?? Observable.Empty<T12>().AsQbservable();\nvar zipped = QbservableEx.Zip(q1, ..., q12, selector);","handlingStrategy":"validation","validationCode":"ArgumentNullException.ThrowIfNull(twelfth);","typeGuard":"bool TwelfthReady<T12>(IQbservable<T12>? q) => q is not null;","tryCatchPattern":"try { /* zip call */ }\ncatch (ArgumentNullException ex) when (ex.ParamName == \"twelfth\")\n{\n    throw new InvalidOperationException(\"12th Zip source missing after refactor\", ex);\n}","preventionTips":["Update all Zip call sites when adding/removing streams; rely on compiler arity errors instead of null placeholders.","Use chained pairwise zips for 10+ sources.","Test the full query composition in CI."],"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"}