{"record":{"id":"4272febe0735c11c","repo":"dotnet/reactive","slug":"value-cannot-be-null-parameter-source6","errorCode":null,"errorMessage":"Value cannot be null. (Parameter 'source6')","messagePattern":"Value cannot be null\\. \\(Parameter 'source6'\\)","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"AsyncRx.NET/System.Reactive.Async/Linq/Operators/Zip.Generated.cs","lineNumber":504,"sourceCode":"\n                return d;\n            });\n        }\n\n        public static IAsyncObservable<TResult> Zip<T1, T2, T3, T4, T5, T6, T7, TResult>(this IAsyncObservable<T1> source1, IAsyncObservable<T2> source2, IAsyncObservable<T3> source3, IAsyncObservable<T4> source4, IAsyncObservable<T5> source5, IAsyncObservable<T6> source6, IAsyncObservable<T7> source7, Func<T1, T2, T3, T4, T5, T6, T7, TResult> selector)\n        {\n            if (source1 == null)\n                throw new ArgumentNullException(nameof(source1));\n            if (source2 == null)\n                throw new ArgumentNullException(nameof(source2));\n            if (source3 == null)\n                throw new ArgumentNullException(nameof(source3));\n            if (source4 == null)\n                throw new ArgumentNullException(nameof(source4));\n            if (source5 == null)\n                throw new ArgumentNullException(nameof(source5));\n            if (source6 == null)\n                throw new ArgumentNullException(nameof(source6));\n            if (source7 == null)\n                throw new ArgumentNullException(nameof(source7));\n            if (selector == null)\n                throw new ArgumentNullException(nameof(selector));\n\n            return Create<TResult>(async observer =>\n            {\n                var d = new CompositeAsyncDisposable();\n\n                var (observer1, observer2, observer3, observer4, observer5, observer6, observer7) = AsyncObserver.Zip(observer, selector);\n\n                var sub1 = source1.SubscribeSafeAsync(observer1).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();\n                var sub2 = source2.SubscribeSafeAsync(observer2).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();\n                var sub3 = source3.SubscribeSafeAsync(observer3).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();\n                var sub4 = source4.SubscribeSafeAsync(observer4).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();\n                var sub5 = source5.SubscribeSafeAsync(observer5).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();\n                var sub6 = source6.SubscribeSafeAsync(observer6).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();\n                var sub7 = source7.SubscribeSafeAsync(observer7).AsTask().ContinueWith(disposable => d.AddAsync(disposable.Result).AsTask()).Unwrap();","sourceCodeStart":486,"sourceCodeEnd":522,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/AsyncRx.NET/System.Reactive.Async/Linq/Operators/Zip.Generated.cs#L486-L522","documentation":"The 7-source Zip overload throws ArgumentNullException('source6') when the 6th source observable is null. Validation runs synchronously at operator construction, so nothing is subscribed and the exception surfaces immediately at the Zip call site.","triggerScenarios":"Calling AsyncObservable.Zip(source1, source2, source3, source4, source5, null, source7) with a null sixth IAsyncObservable argument.","commonSituations":"A configuration-driven pipeline where the sixth source's factory failed and returned null; DI wiring where an optional dependency was not registered; test code passing null as a placeholder for unused streams.","solutions":["Pass a valid IAsyncObservable for source6, or AsyncObservable.Empty<T6>() if absence is expected.","Validate all seven sources with a guard loop before composing.","Use a lower-arity overload when fewer than seven streams are involved."],"exampleFix":"// before\nvar zip7 = AsyncObservable.Zip(s1, s2, s3, s4, s5, GetSixth(), s7);\n// after\nvar sixth = GetSixth() ?? AsyncObservable.Empty<T6>();\nvar zip7 = AsyncObservable.Zip(s1, s2, s3, s4, s5, sixth, s7);","handlingStrategy":"validation","validationCode":"if (source6 == null) throw new InvalidOperationException(\"source6 must be non-null\");","typeGuard":"bool IsValidZipInput<T>(IAsyncObservable<T> s) => s is not null;","tryCatchPattern":"try\n{\n    var zipped = AsyncObservable.Zip(s1, s2, s3, s4, s5, s6, s7);\n}\ncatch (ArgumentNullException ex) when (ex.ParamName == \"source6\")\n{\n    logger.LogError(ex, \"6th zip source was null\");\n}","preventionTips":["Validate DI-registered stream dependencies at startup","Prefer returning empty observables over null from optional providers","Enable nullable reference type warnings and fix them before runtime"],"tags":["argument-null","zip","async-rx"],"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"}