hashicorp/vagrant · info

You are about to publish a box on Vagrant Cloud with the fol

Error message

You are about to publish a box on Vagrant Cloud with the following options:

What it means

Preamble warning displayed by `vagrant cloud publish` (display_preamble in publish.rb) before the interactive confirmation: 'You are about to publish a box on Vagrant Cloud with the following options:' followed by info lines for box identity (org/box v<version> for provider), private flag, automatic release flag, architecture, default architecture, remote URL, descriptions and checksum. It exists so you can verify exactly what will be written to Vagrant Cloud before confirming.

Source

Thrown at plugins/commands/cloud/publish.rb:276

        # Display publishing information to user before starting process
        #
        # @param [String] org Organization name
        # @param [String] box_name Name of the box to publish
        # @param [String] version Version of the box to publish
        # @param [String] provider_name Name of the provider being published
        # @param [Hash] options
        # @option options [String] :architecture Name of architecture of provider being published#
        # @option options [Boolean] :private Box is private
        # @option options [Boolean] :release Box should be released
        # @option options [String] :url Remote URL for self-hosted boxes
        # @option options [Boolean] :default_architecture Architecture is default for provider name
        # @option options [String] :description Description of the box
        # @option options [String] :short_description Short description of the box
        # @option options [String] :version_description Description of the box version
        # @return [nil]
        def display_preamble(org, box_name, version, provider_name, options={})
          @env.ui.warn(I18n.t("cloud_command.publish.confirm.warn"))
          @env.ui.info(I18n.t("cloud_command.publish.confirm.box", org: org,
            box_name: box_name, version: version, provider_name: provider_name))
          @env.ui.info(I18n.t("cloud_command.publish.confirm.private")) if options[:private]
          @env.ui.info(I18n.t("cloud_command.publish.confirm.release")) if options[:release]
          @env.ui.info(I18n.t("cloud_command.publish.confirm.architecture",
            architecture: options[:architecture]))
          @env.ui.info(I18n.t("cloud_command.publish.confirm.default_architecture")) if options[:default_architecture]
          @env.ui.info(I18n.t("cloud_command.publish.confirm.box_url",
            url: options[:url])) if options[:url]
          @env.ui.info(I18n.t("cloud_command.publish.confirm.box_description",
            description: options[:description])) if options[:description]
          @env.ui.info(I18n.t("cloud_command.publish.confirm.box_short_desc",
            short_description: options[:short_description])) if options[:short_description]
          @env.ui.info(I18n.t("cloud_command.publish.confirm.version_desc",
            version_description: options[:version_description])) if options[:version_description]
          nil
        end
      end

View on GitHub (pinned to 35f3160f4a)

Solutions

  1. Read the listed options against your intent — especially version, provider_name, architecture and the Private/Release flags — before answering y.
  2. Wrong values? abort with N (or Ctrl-C) and re-run with corrected flags instead of editing state afterwards.
  3. Use the printed URL/checksum lines to confirm the asset source is the one you meant.
  4. In scripts use --force to skip the prompt but keep this output in logs as an audit record of what was published.
Defensive patterns

Strategy: validation

Validate before calling

# non-interactive publish with pre-verified, computed values only
: "${ORG:?} ${BOX:?} ${VER:?} ${PROVIDER:?} ${ARCH:?}"   # fail fast on unset
vagrant cloud publish "$ORG/$BOX" "$VER" "$PROVIDER" --architecture "$ARCH" --force

Prevention

When it happens

Trigger: Every interactive `vagrant cloud publish` invocation that reaches the confirm step (i.e. was not aborted by argument validation); the preamble is printed, then the continue prompt is shown unless suppressed by --force.

Common situations: Publish-day checklist review (right version? right architecture? private flag set?); overriding an existing box and wanting to catch mistakes before they go live; automation seeing the warn-channel line in logs and misclassifying the run as failed.

Related errors


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