{"record":{"id":"32261b84f886bf6f","repo":"dotnet/reactive","slug":"source8","errorCode":null,"errorMessage":"source8","messagePattern":"source8","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"Rx.NET/Source/src/System.Reactive/Linq/Observable.Multiple.Zip.cs","lineNumber":888,"sourceCode":"\n            if (source5 == null)\n            {\n                throw new ArgumentNullException(nameof(source5));\n            }\n\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)","sourceCodeStart":870,"sourceCodeEnd":906,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/Rx.NET/Source/src/System.Reactive/Linq/Observable.Multiple.Zip.cs#L870-L906","documentation":"The 14-source Zip overload validates source8 at line 888; null triggers ArgumentNullException with parameter 'source8'. Rx eagerly validates arguments in the public API so a null eighth input fails at the call site, before any subscription.","triggerScenarios":"Calling the 14-argument Observable.Zip with null in the eighth argument position while other sources and resultSelector are non-null.","commonSituations":"A dictionary/config lookup missing the key for the eighth stream, a factory method returning null on a failure path, or argument drift when editing the long parameter list.","solutions":["Pass a valid observable (or Observable.Empty<TSource8>()) in position 8.","Fix the null-producing code path for source8.","Null-check each source before the Zip call.","Re-verify positional ordering of the 14 arguments."],"exampleFix":"// before\nvar zipped = Observable.Zip(s1, ..., s7, null, s9, ..., s14, selector);\n// after\nvar zipped = Observable.Zip(s1, ..., s7, s8 ?? Observable.Empty<TSource8>(), s9, ..., s14, selector);","handlingStrategy":"validation","validationCode":"if (source8 == null) throw new ArgumentNullException(nameof(source8));","typeGuard":"static IObservable<T> NonNull<T>(IObservable<T> s) => s ?? Observable.Empty<T>();","tryCatchPattern":"try { var zipped = Observable.Zip(source1, ..., source8, ...); } catch (ArgumentNullException ex) when (ex.ParamName == \"source8\") { /* substitute default source or abort */ }","preventionTips":["Never pass null from config/dictionary lookups; return Observable.Empty<T>() on misses.","Add a pre-call null check loop over all sources.","Enable nullable reference types to catch null sources statically."],"tags":["rx","null-argument","argument-validation"],"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"}