I have made Jot's comment into an answer in the hope that it helps someone.
First mismatch in byte 0x0000. [This is] the first byte that goes wrong. That means that not even a single byte passes the verification.
Perhaps the cause is one of these:
- A cheap clone with a bad bootloader.
- An old bootloader.
- A bug, perhaps a bug with the size of the code or ram, for example the code at the border of 32k or 64k.
- Maybe the voltage of the Arduino board is too low. Measure it. It must be above 4.5V.
- Maybe a bad USB cable.
- Wrong USB driver.
- Board is too cheap and is missing decoupling capacitors.
!!!
somewhere in your code?