Media Deduper Pro is stuck on indexing at 0%

From time to time, users report that they are unable to generate the media index after activating Media Deduper Pro. Most commonly, this is caused by either unusually large media files or password protection.

Large files

When Media Deduper or Media Deduper Pro indexes your files, it calculates a hash of the contents of each file. If your media library contains exceptionally large files (e.g. long audio or video files, or extremely large and/or high-resolution images), this process can be slow or may even cause out-of-memory errors, preventing the indexing process from ever completing.

In these cases, we recommend enabling the "Run partial hashes" setting, which tells Media Deduper Pro to analyze only the first 5 megabytes of each file, rather than each file's full contents. This setting greatly improves indexer performance on sites with large files and/or low memory, but it also carries the risk that files that are not completely identical will be treated as duplicates, because if two files' first 5 MB are identical, it isn't necessarily true that the rest of the two files will be identical. As always, we recommend backing up your files before using Media Deduper.

To enable this setting, from Settings in your WordPress Admin, navigate to Media Deduper Pro, check the box next to Run Partial Hashes, and click Save Changes.

Password protection

Media Deduper and Media Deduper Pro require WP cron to function. If you're working on a development site that's password-protected using HTTP basic authentication, special measures are necessary to make WP cron work. We recommend using this plugin, which is easy to configure: https://wordpress.org/plugins/wp-cron-http-auth/

Media Deduper Pro will display a warning message on your WordPress admin screen if it detects that WP cron isn't working correctly.

Other issues

If you see Media Deduper Pro's "It looks like your site is password-protected" notice on your WordPress dashboard, but your site is not password-protected, then something else is causing so-called "loopback" HTTP requests to fail. Loopback requests are requests made by a website to itself, and they're used by WP cron and by Media Deduper to perform scheduled work in the background, including building the media index.

When first installed, Media Deduper Pro performs a test loopback request to the your site's wp-cron.php file. If any of the following conditions are met, the password protection warning will be displayed:

1. The response from your server contains a www-authenticate header
2. The status code for the response is 401 (Unauthorized)
3. Your server fails to respond with a 200 (OK) status code for any other reason (timeout, 5xx or other 4xx error, etc).

The result of the test loopback request is cached for up to 12 hours in a transient named mdd_wp_cron_request, so once you find and fix the issue that initially prevented loopback requests from working, there may be a delay before the password protection warning disappears.


Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.