Issue with update to 7.0.4
-
Hey,
I was wondering if anybody else was having this issue, over 50 sites on IIS and Linux servers can not be updated to 7.0.4 from version 7.0.3 with the following error:Downloading update from https://downloads.wordpress.org/release/wordpress-7.0.4-partial-3.zip…
Download failed.: The checksum of the file (d41d8cd98f00b204e9800998ecf8427e) does not match the expected checksum value (6ae4a31d00882ee697475c2601e7006d).
Installation failed.
Is there anyone also having this error?The page I need help with: [log in to see the link]
-
Is the problem still occurring right now?
Yes it is, same error. And also issues reporting with updating plugins. Based in the Netherlands.
Downloading update from https://downloads.wordpress.org/release/wordpress-7.0.4-partial-3.zip…
Download failed.: The checksum of the file (d41d8cd98f00b204e9800998ecf8427e) does not match the expected checksum value (6ae4a31d00882ee697475c2601e7006d).
Installation failed.
Any update? We still have the same issue, also with a different update package:
Update aan het downloaden van https://downloads.wordpress.org/release/nl_NL/wordpress-7.0.4.zip…
Download mislukt.: De checksum van de bestanden (d41d8cd98f00b204e9800998ecf8427e) komt niet overeen met de verwachte checksum waarde (3fb7ca2a87ec005fc5bf726831af7272).
Installatie mislukt.
Have you checked to see if there’s enough storage space on your hosting account? Also check under Tools > Site Health to see if any issues are listed there.
Since this is a security update, you could also quickly install it manually as described here: https://wordpress.org/documentation/article/updating-wordpress/#manual-update
There is enough space. By the time we finished manual updating 7.1 is gonna be out. The download simply fails. And using the update only results in the checksum error.
I haven’t had that happen on a single project of mine. What version of PHP are you using? The checksum is verified using PHP functions.
The manual update actually takes just a few minutes if you have FTP access.
The problem is the amount of sites that we would have to manually update then. I tried PHP version 8.3 8.4 and latest 8.5.5
Here is the complete debug log I got, which shows that on our end everything works as it should:
root@****:~# curl -I https://downloads.wordpress.org/release/wordpress-7.0.4-partial-3.zip
HTTP/2 200
server: nginx
date: Fri, 14 Aug 2026 08:01:41 GMT
content-type: application/zip
content-length: 36425
cache-control: private
content-disposition: attachment; filename=wordpress-7.0.4-partial-3.zip
last-modified: Wed, 12 Aug 2026 14:12:58 GMT
content-md5: 6ae4a31d00882ee697475c2601e7006d
alt-svc: clear
x-nc: EXPIRED dca 5
accept-ranges: bytesroot@****:~# wget -S https://downloads.wordpress.org/release/wordpress-7.0.4-partial-3.zip
–2026-08-14 10:02:24– https://downloads.wordpress.org/release/wordpress-7.0.4-partial-3.zip
Resolving downloads.wordpress.org (downloads.wordpress.org)… 66.6.42.250, 2620:109:b00a::4206:2afa
Connecting to downloads.wordpress.org (downloads.wordpress.org)|66.6.42.250|:443… connected.
HTTP request sent, awaiting response…
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 14 Aug 2026 08:02:25 GMT
Content-Type: application/zip
Content-Length: 36425
Connection: close
Cache-control: private
Content-Disposition: attachment; filename=wordpress-7.0.4-partial-3.zip
Last-Modified: Wed, 12 Aug 2026 14:12:58 GMT
Content-MD5: 6ae4a31d00882ee697475c2601e7006d
Alt-Svc: clear
X-nc: EXPIRED dca 3
Accept-Ranges: bytes
Length: 36425 (36K) [application/zip]
Saving to: ‘wordpress-7.0.4-partial-3.zip’wordpress-7.0.4-partial-3.zip 100%[================================================================================================================================================================================================================>] 35.57K –.-KB/s in 0.1s
2026-08-14 10:02:25 (314 KB/s) – ‘wordpress-7.0.4-partial-3.zip’ saved [36425/36425]
root@****:~# php -r ‘
$url=”https://downloads.wordpress.org/release/wordpress-7.0.4-partial-3.zip”;
root@:~# var_dump($data === false ? false : strlen($data)); if ($data !== false) echo md5($data).PHP_EOL; ‘ int(36425) 6ae4a31d00882ee697475c2601e7006d root@:~#Thanks for this detailed analysis. I tried to reproduce it on my end. The HTTP response is identical to yours, including the content-md5 value.
Then I also saved the file locally. In your test, it apparently returns the correct MD5 there as well. I did it differently, but I got the same result. That’s because WordPress uses
md5_file()to return the MD5 of the downloaded file (see https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/file.php#L1382(. So I simply used this:<?php
var_dump(md5_file(‘wordpress-7.0.4-partial-3.zip’));saved as a file and then ran it:
> php test.php
string(32) "6ae4a31d00882ee697475c2601e7006d"Since you’re getting the correct result there as well, the question is why WordPress is coming up with the wrong value during the actual update. The expected MD5 is correct, but the one calculated by your project from the downloaded file is not.
Are you using any security plugins? Or is there a security tool in your hosting environment that could be changing the value?
You must be logged in to reply to this topic.