{"record":{"id":"038fcaf07b2024cc","repo":"jstedfast/MailKit","slug":"value-cannot-be-null-parameter-message-appendrequest","errorCode":null,"errorMessage":"Value cannot be null. (Parameter 'message')","messagePattern":"Value cannot be null\\. \\(Parameter 'message'\\)","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"MailKit/AppendRequest.cs","lineNumber":55,"sourceCode":"\t/// A request for appending a message to a folder.\n\t/// </remarks>\n\tpublic class AppendRequest : IAppendRequest\n\t{\n\t\t/// <summary>\n\t\t/// Initializes a new instance of the <see cref=\"AppendRequest\"/> class.\n\t\t/// </summary>\n\t\t/// <remarks>\n\t\t/// Creates a new <see cref=\"AppendRequest\"/>.\n\t\t/// </remarks>\n\t\t/// <param name=\"message\">The message.</param>\n\t\t/// <param name=\"flags\">The message flags.</param>\n\t\t/// <exception cref=\"ArgumentNullException\">\n\t\t/// <paramref name=\"message\"/> is <see langword=\"null\" />.\n\t\t/// </exception>\n\t\tpublic AppendRequest (MimeMessage message, MessageFlags flags = MessageFlags.None)\n\t\t{\n\t\t\tif (message == null)\n\t\t\t\tthrow new ArgumentNullException (nameof (message));\n\n\t\t\tMessage = message;\n\t\t\tFlags = flags;\n\t\t}\n\n\t\t/// <summary>\n\t\t/// Initializes a new instance of the <see cref=\"AppendRequest\"/> class.\n\t\t/// </summary>\n\t\t/// <remarks>\n\t\t/// Creates a new <see cref=\"AppendRequest\"/>.\n\t\t/// </remarks>\n\t\t/// <param name=\"message\">The message.</param>\n\t\t/// <param name=\"flags\">The message flags.</param>\n\t\t/// <param name=\"keywords\">The message keywords.</param>\n\t\t/// <exception cref=\"ArgumentNullException\">\n\t\t/// <para><paramref name=\"message\"/> is <see langword=\"null\" />.</para>\n\t\t/// <para>-or-</para>\n\t\t/// <para><paramref name=\"keywords\"/> is <see langword=\"null\" />.</para>","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/jstedfast/MailKit/blob/9d3859a7855e3e17582c07fd01972b8e262bf176/MailKit/AppendRequest.cs#L37-L73","documentation":"Guard clause in the AppendRequest constructor: the 'message' argument (the MimeMessage to append to a folder) was null. An append request is meaningless without a message, so the constructor rejects it immediately.","triggerScenarios":"Calling new AppendRequest (null) or new AppendRequest (null, flags) when building an IMAP APPEND request for ImapClient.Append.","commonSituations":"A MimeMessage-building pipeline returning null (failed message load), variables from parsing that were never assigned, tests passing null.","solutions":["Ensure the MimeMessage is created/loaded before constructing AppendRequest","Check the message for null before constructing the request","If the source may be null, load with MimeMessage.Load and verify the stream/path exists first"],"exampleFix":"// before\nvar request = new AppendRequest (message, MessageFlags.Seen); // message is null\n// after\nif (message == null) message = MimeMessage.Load (stream);\nvar request = new AppendRequest (message, MessageFlags.Seen);","handlingStrategy":"type-guard","validationCode":"if (message == null)\n    throw new InvalidOperationException (\"Cannot append: message was not loaded.\");","typeGuard":"bool HasMessage (MimeMessage message) => message != null;","tryCatchPattern":"try { var request = new AppendRequest (message, flags); }\ncatch (ArgumentNullException) { log.Error (\"AppendRequest requires a non-null MimeMessage.\"); throw; }","preventionTips":["Load the MimeMessage before constructing the request","Check message-producing functions for null returns","Use '?? throw new InvalidOperationException(...)' to fail fast with context"],"tags":["null-argument","imap","append","mime"],"backgroundTag":"null-argument","analyzedSha":"9d3859a7855e3e17582c07fd01972b8e262bf176","analyzedAt":"2026-09-15T15:46:11.592Z","contentChangedAt":"2026-09-15T15:46:11.592Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}