{"record":{"id":"ba77634f97122297","repo":"devlooped/moq","slug":"value-argument-is-null","errorCode":null,"errorMessage":"value (Argument is null)","messagePattern":"value \\(Argument is null\\)","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"src/Moq/Mock`1.cs","lineNumber":264,"sourceCode":"                    throw new NotSupportedException(Resources.CallBaseCannotBeUsedWithDelegateMocks);\n                }\n\n                this.callBase = value;\n            }\n        }\n\n        internal override object?[] ConstructorArguments => this.constructorArguments;\n\n        internal override Dictionary<Type, object?> ConfiguredDefaultValues => this.configuredDefaultValues;\n\n        /// <summary>\n        /// Gets or sets the <see cref=\"DefaultValueProvider\"/> instance that will be used\n        /// e. g. to produce default return values for unexpected invocations.\n        /// </summary>\n        public override DefaultValueProvider DefaultValueProvider\n        {\n            get => this.defaultValueProvider;\n            set => this.defaultValueProvider = value ?? throw new ArgumentNullException(nameof(value));\n        }\n\n        internal override EventHandlerCollection EventHandlers => this.eventHandlers;\n\n        internal override List<Type> AdditionalInterfaces => this.additionalInterfaces;\n\n        internal override InvocationCollection MutableInvocations => this.invocations;\n\n        internal override bool IsObjectInitialized => this.instance != null;\n\n        /// <summary>\n        ///   Exposes the mocked object instance.\n        /// </summary>\n        public virtual new T Object\n        {\n            get { return (T)base.Object; }\n        }\n","sourceCodeStart":246,"sourceCodeEnd":282,"githubUrl":"https://github.com/devlooped/moq/blob/89a5be629c752960fe403e95ff583e4ae6f00542/src/Moq/Mock`1.cs#L246-L282","documentation":"Moq throws this ArgumentNullException when null is assigned to Mock<T>.DefaultValueProvider. A mock must always have a default value provider to produce return values for loose invocations, so null is rejected immediately.","triggerScenarios":"mock.DefaultValueProvider = null; or passing a null provider variable/return value of a factory into the DefaultValueProvider setter (src/Moq/Mock`1.cs:264).","commonSituations":"A provider-factory method returning null on a missed configuration branch; conditional config code that nulls out the provider to 'reset' it instead of assigning Mock.Of<DefaultValueProvider> or a concrete provider.","solutions":["Assign a concrete provider such as DefaultValue.Empty, DefaultValue.Mock, or a custom DefaultValueProvider subclass.","If you intended to reset behavior, create a new mock rather than setting the provider to null.","Null-check the value returned by your provider factory before assigning it."],"exampleFix":"// before\nmock.DefaultValueProvider = GetProvider(); // may be null\n// after\nvar provider = GetProvider();\nmock.DefaultValueProvider = provider ?? DefaultValue.Empty;","handlingStrategy":"type-guard","validationCode":"var provider = GetProvider();\nif (provider is null) provider = DefaultValue.Empty;\nmock.DefaultValueProvider = provider;","typeGuard":"bool IsValidProvider(DefaultValueProvider p) => p is not null;","tryCatchPattern":"try { mock.DefaultValueProvider = provider; } catch (ArgumentNullException) { mock.DefaultValueProvider = DefaultValue.Empty; }","preventionTips":["Never assign null to DefaultValueProvider; use DefaultValue.Empty to reset","Null-check provider factories before assignment"],"tags":["moq","null-argument","default-value-provider"],"backgroundTag":"null-argument","analyzedSha":"89a5be629c752960fe403e95ff583e4ae6f00542","analyzedAt":"2026-09-16T05:31:39.496Z","contentChangedAt":"2026-09-16T05:31:39.496Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}