Easy Digital Downloads software licensed updates fail

I recognize that what I’m about to share is extremely niche, but maybe someone has the solution or this will help someone else.

I’m developing a WordPress plugin to sell. I use Easy Digital Downloads to sell it and the Software Licensing extension to manage the license keys and WordPress plugin updates for that plugin.

So in Local by Flywheel, I have my store site that sells the plugin, manages the licensing, and handles the updates. Then, I have a test site where the plugin is installed. Currently, the plugin is coded to look at the local store site for the update.

No problems thus far. The licensing connection between the two sites works, and the test site can properly retrieve the update metadata from the store site, so it can offer the automatic update.

But where things break is in the actual update process. When I start the update process on the test site, it says, “Download failed. A valid URL was not provided.”

I’ve talked to the Easy Digital Downloads team and we haven’t been able to figured it out except that this happens only when the store site is hosted by Local by Flywheel. If I take the same store site and host it on a live staging server (and then change my plugin to look to that URL for the update), the update is properly downloaded and installed.

This isn’t an SSL issue. I tried both with and without https.

The EDD team said the download URL base path is returning the proper “invalid token” message. And I can even download the plugin directly from the URL EDD is hosting the plugin at.

EDD suggested maybe it was a caching issue, but I have no caching plugins enabled, and both sites are in dev mode, so Varnish is off.

I even disabled all but the EDD plugins on the store site and the problem still occurs, so it’s not a plugin conflict, but it’s definitely something specific to Local by Flywheel?

I know this is very niche, but any ideas or solutions?

Local by Flywheel 2.4.5 with sites in preferred 1.3.2 environment.

Hey @theDanielJLewis

Just stabbing in the dark, but that sort of sounds like a DNS resolution issue.

Have you tried grepping the codebase for “Download failed. A valid URL was not provided.” to see what kinds of checks are being run to validate that URL?

I haven’t used EDD so I’m not sure about the specifics of how it is architected, but I would start by reviewing that. I’m assuming that you have all of the debugging things enabled, especially WP_DEBUG_LOG.

Something like this in the wp-config.php file will get a lot more information about how things are failing:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Hope that helps in thinking through things and getting more information!

If you have any other questions, just let me know!

– Ben