If you are running any of the webpack scripts with watch enabled, the clean process wipes out assets, but does not replace the deleted files. If you add an image to the images folder, the new asset is picked up and placed in the assets folder, but the rest of the images are not transferred.
The only fix I've found so far is to disable the cleanStateWebpackAssets option, but this isn't optimal.
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns: ['./wwwroot/dist', './wwwroot/assets'],
cleanStaleWebpackAssets: false, // It's been removing all images, we want to leave those in place.
root: ROOT
}),