hashicorp/vagrant · warning

No URL was provided to upload the provider You will need to

Error message

No URL was provided to upload the provider
You will need to run the `vagrant cloud provider upload` command to provide a box

What it means

Warning from `vagrant cloud provider update` (plugins/commands/cloud/provider/update.rb) when the invocation carries no --url. Exactly like provider create: the update still proceeds (checksum, architecture, default_architecture fields are applied; p.url = url if !url.nil? leaves the URL untouched), but the notice reminds you the provider's hosted box file can only be supplied via `vagrant cloud provider upload`.

Source

Thrown at plugins/commands/cloud/provider/update.rb:71

            update_provider(org, box_name, version, provider_name, architecture, url, @client.token, options)
          end

          # Update a provider for the box version
          #
          # @param [String] org Organization name
          # @param [String] box Box name
          # @param [String] version Box version
          # @param [String] provider Provider name
          # @param [String] architecture Architecture of guest
          # @param [String] access_token User Vagrant Cloud access token
          # @param [Hash] options
          # @option options [String] :checksum Checksum of the box asset
          # @option options [String] :checksum_type Type of the checksum
          # @return [Integer]
          def update_provider(org, box, version, provider, architecture, url, access_token, options)
            if !url
              @env.ui.warn(I18n.t("cloud_command.upload.no_url"))
            end
            account = VagrantCloud::Account.new(
              custom_server: api_server_url,
              access_token: access_token
            )

            with_provider(account: account, org: org, box: box, version: version, provider: provider, architecture: architecture) do |p|
              p.checksum = options[:checksum] if options.key?(:checksum)
              p.checksum_type = options[:checksum_type] if options.key?(:checksum_type)
              p.architecture = options[:architecture] if options.key?(:architecture)
              p.default_architecture = options[:default_architecture] if options.key?(:default_architecture)
              p.url = url if !url.nil?
              p.save

              @env.ui.success(I18n.t("cloud_command.provider.update_success",
                architecture: architecture, provider: provider, org: org, box_name: box, version: version))

              format_box_results(p, @env)

View on GitHub (pinned to 35f3160f4a)

Solutions

  1. After a metadata-only update, push the artifact with `vagrant cloud provider upload org/box 1.0.3 virtualbox --architecture amd64 --file ./new.box`.
  2. If the artifact is self-hosted, include --url https://... in the update command to set/replace the download URL directly.
  3. Use `vagrant cloud publish` with the box file path for a create-or-update flow that guarantees an asset.
  4. Confirm the final state with `vagrant cloud box show org/box` (URL present / file size updated).

Example fix

# before
vagrant cloud provider update myorg/app 1.0.3 virtualbox amd64 --checksum abc123
# -> No URL was provided ...

# after (artifact hosted remotely)
vagrant cloud provider update myorg/app 1.0.3 virtualbox amd64 \
  --checksum abc123 --url https://cdn.example.com/app-1.0.3.box
Defensive patterns

Strategy: validation

Validate before calling

if [ -z "$BOX_URL" ] && [ ! -f "$BOX_FILE" ]; then
  echo "update carries no asset: pass --url or run cloud provider upload after" >&2
fi

Prevention

When it happens

Trigger: Running `vagrant cloud provider update org/box 1.0.3 virtualbox amd64` without --url while updating metadata such as --checksum/--checksum-type; any metadata-only refresh of an existing provider entry.

Common situations: Rotating checksums after re-signing artifacts; updating default_architecture flags; operators who believe update also uploads the file — it does not, the warning marks the gap.

Related errors


AI-assisted analysis of hashicorp/vagrant@35f3160f4a (2026-08-21). Data as JSON: /api/errors/a564f8db4bffd499. Report an issue: GitHub.