Skip to content

[6.x] Don't fetch Marketplace data during offline license validation - #15653

Merged
jasonvarga merged 3 commits into
6.xfrom
fix-offline-license-marketplace-requests
Oct 15, 2026
Merged

jasonvarga merged 3 commits into
6.xfrom
fix-offline-license-marketplace-requests

Conversation

@joshuablum

Copy link
Copy Markdown
Member

When using offline license validation the Outpost is skipped but installed addons that aren't listed in the key file are checked with isCommercial() and existsOnMarketplace(). Since #11948 made Marketplace data lazy, those calls fetch it from statamic.com at runtime. And since #15208 license check-ins also happen after front-end requests and artisan commands.

So on servers without outbound access, offline validation ends up making a request that fails or hangs until it times out, including during front-end requests. Released versions have no timeout on Marketplace requests (#15591 adds one).

This PR only uses Marketplace data the addon manifest already has. Addons without it are treated as valid and not listed on the Marketplace, which is the same outcome as a failed request today. Offline validation no longer makes any requests.

Related: #15651

When using a license key file, installed addons missing from the file
were checked with isCommercial() and existsOnMarketplace(). Since the
Marketplace data became lazy, this triggered a request to statamic.com,
which can hang on servers without outbound access. Only use Marketplace
data the manifest already has.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jasonvarga and others added 2 commits October 15, 2026 11:13
The magic __call method already returns the property without fetching from the Marketplace.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rketplace-requests

# Conflicts:
#	tests/Licensing/OutpostTest.php
@jasonvarga
jasonvarga merged commit 58e9e22 into 6.x Oct 15, 2026
64 checks passed
@jasonvarga
jasonvarga deleted the fix-offline-license-marketplace-requests branch October 15, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants