CSOM SharePoint Online error: The server does not allow messages larger than 2097152 bytes

If you get the following error with CSOM while trying  to upload documents to SharePoint Online: The server does not allow messages larger than 2097152 bytes The reason is that CSOM limits SharePoint Online to 2MB file uploads by default if using the "ReadAllBytes" method. Use the ContentStream property instead: public void UploadDocumentContentStream(ClientContext ctx, string libraryName, string filePath) { Web web = ctx.Web; // Ensure that the target library exists. Create it if it is missing. if (!LibraryExists(ctx, web, libraryName)) { CreateLibrary(ctx, web, libraryName); } using (FileStream fs = new FileStream(filePath, FileMode.Open)) { FileCreationInformation flciNewFile = new FileCreationInformation(); // This is the key difference for the first case - using ContentStream property flciNewFile.ContentStream = fs; flciNewFile.Url = System.IO.Path.GetFileName(filePath); flciNewFile.Overwrite = true; List docs = web.Lists.GetByTitle(libraryName); Microsoft.SharePoint.Client.File uploadFile = docs.RootFolder.Files.Add(flciNewFile); ctx.Load(uploadFile); ctx.ExecuteQuery(); } }   source: https://msdn.microsoft.com/en-us/pnp_articles/upload-large-files-sample-app-for-sharepoint