{"record":{"id":"4a359288c8ae6016","repo":"dotnet/reactive","slug":"source9","errorCode":null,"errorMessage":"source9","messagePattern":"source9","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/Observable.Multiple.Zip.cs","lineNumber":893,"sourceCode":"\n            if (source6 == null)\n            {\n                throw new ArgumentNullException(nameof(source6));\n            }\n\n            if (source7 == null)\n            {\n                throw new ArgumentNullException(nameof(source7));\n            }\n\n            if (source8 == null)\n            {\n                throw new ArgumentNullException(nameof(source8));\n            }\n\n            if (source9 == null)\n            {\n                throw new ArgumentNullException(nameof(source9));\n            }\n\n            if (source10 == null)\n            {\n                throw new ArgumentNullException(nameof(source10));\n            }\n\n            if (source11 == null)\n            {\n                throw new ArgumentNullException(nameof(source11));\n            }\n\n            if (source12 == null)\n            {\n                throw new ArgumentNullException(nameof(source12));\n            }\n\n            if (source13 == null)","sourceCodeStart":875,"sourceCodeEnd":911,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/Observable.Multiple.Zip.cs#L875-L911","documentation":"The 14-source Zip overload validates source9 at line 893; a null ninth sequence throws ArgumentNullException with parameter 'source9'. All 14 inputs must be non-null observable sequences for Zip to combine elements positionally, and Rx validates them synchronously in the public method.","triggerScenarios":"Calling the 14-argument Observable.Zip with null as the ninth IObservable<TSource9> argument while the other 13 sources and the resultSelector are non-null.","commonSituations":"An uninitialized stream variable for the ninth feed, a null returned from a conditional factory branch, or misordered arguments when refactoring the very long call signature.","solutions":["Supply a real observable for position 9; use Observable.Empty<TSource9>() as a placeholder for an absent stream.","Fix the producer that returned null for source9.","Add pre-call validation that every source is non-null.","Check the ordering of all 14 source arguments at the call site."],"exampleFix":"// before\nvar zipped = Observable.Zip(s1, ..., s8, null, s10, ..., s14, selector);\n// after\nvar zipped = Observable.Zip(s1, ..., s8, s9 ?? Observable.Empty<TSource9>(), s10, ..., s14, selector);","handlingStrategy":"validation","validationCode":"if (source9 == null) throw new ArgumentNullException(nameof(source9));","typeGuard":"static IObservable<T> NonNull<T>(IObservable<T> s) => s ?? Observable.Empty<T>();","tryCatchPattern":"try { var zipped = Observable.Zip(source1, ..., source9, ...); } catch (ArgumentNullException ex) when (ex.ParamName == \"source9\") { /* substitute default source or abort */ }","preventionTips":["Coalesce sources with ?? Observable.Empty<T>() before Zip.","Keep long Zip calls behind a validated helper method.","Verify stream initialization before combining many sources."],"tags":["rx","null-argument","reactive-extensions"],"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"}