{"record":{"id":"66c49351fce65d7d","repo":"dotnet/reactive","slug":"value-cannot-be-null-parameter-source7","errorCode":null,"errorMessage":"Value cannot be null. (Parameter 'source7')","messagePattern":"Value cannot be null\\. \\(Parameter 'source7'\\)","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"AsyncRx.NET/System.Reactive.Async/Linq/Operators/Zip.Generated.cs","lineNumber":506,"sourceCode":"            });\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();\n\n                await Task.WhenAll(sub1, sub2, sub3, sub4, sub5, sub6, sub7).ConfigureAwait(false);","sourceCodeStart":488,"sourceCodeEnd":524,"githubUrl":"https://github.com/dotnet/reactive/blob/94b5d5ab912789f5abe9a72138a25bbd716fe59c/AsyncRx.NET/System.Reactive.Async/Linq/Operators/Zip.Generated.cs#L488-L524","documentation":"The 7-source Zip overload throws ArgumentNullException('source7') when the 7th (last) source observable is null. All sources must be non-null because the operator zips corresponding elements from each sequence.","triggerScenarios":"Calling AsyncObservable.Zip(source1, source2, source3, source4, source5, source6, null) with a null seventh IAsyncObservable argument.","commonSituations":"Trailing optional argument mistakenly left null instead of using a shorter overload; the last stream comes from a method whose null return wasn't handled; migrating code where an eighth overload arity changed and the final slot became null.","solutions":["Provide a non-null IAsyncObservable for source7 or substitute AsyncObservable.Empty<T7>().","Drop to a 6-source Zip overload if the last stream is not needed.","Assert non-nullness of all sources in a helper that wraps Zip construction."],"exampleFix":"// before\nvar result = AsyncObservable.Zip(a, b, c, d, e, f, lastStream);\n// after\nvar result = lastStream == null\n    ? AsyncObservable.Zip(a, b, c, d, e, f)\n    : AsyncObservable.Zip(a, b, c, d, e, f, lastStream);","handlingStrategy":"validation","validationCode":"if (source7 == null) throw new InvalidOperationException(\"source7 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 == \"source7\")\n{\n    logger.LogError(ex, \"7th zip source was null\");\n}","preventionTips":["Choose the overload arity matching the number of real streams instead of padding with null","Audit trailing optional parameters that may forward null into operators","Assert non-null sources in debug builds before composition"],"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"}