{"record":{"id":"d5829f5c243e31aa","repo":"hashicorp/vagrant","slug":"no-url-was-provided-to-upload-the-provider-you-wil","errorCode":null,"errorMessage":"No URL was provided to upload the provider\nYou will need to run the `vagrant cloud provider upload` command to provide a box","messagePattern":"No URL was provided to upload the provider\nYou will need to run the `vagrant cloud provider upload` command to provide a box","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"plugins/commands/cloud/provider/create.rb","lineNumber":74,"sourceCode":"          end\n\n          # Create a provider for the box version\n          #\n          # @param [String] org Organization name\n          # @param [String] box Box name\n          # @param [String] version Box version\n          # @param [String] provider Provider name\n          # @param [String] url Provider asset URL\n          # @param [String] access_token User Vagrant Cloud access token\n          # @param [Hash] options\n          # @option options [String] :architecture Architecture of guest box\n          # @option options [String] :checksum Checksum of the box asset\n          # @option options [String] :checksum_type Type of the checksum\n          # @option options [Boolean] :default_architecture Default architecture for named provider\n          # @return [Integer]\n          def create_provider(org, box, version, provider, url, access_token, options={})\n            if !url\n              @env.ui.warn(I18n.t(\"cloud_command.upload.no_url\"))\n            end\n            account = VagrantCloud::Account.new(\n              custom_server: api_server_url,\n              access_token: access_token\n            )\n            with_version(account: account, org: org, box: box, version: version) do |version|\n              provider = version.add_provider(provider, options[:architecture])\n              provider.checksum = options[:checksum] if options.key?(:checksum)\n              provider.checksum_type = options[:checksum_type] if options.key?(:checksum_type)\n              provider.architecture = options[:architecture] if options.key?(:architecture)\n              provider.default_architecture = options[:default_architecture] if options.key?(:default_architecture)\n              provider.url = url if url\n\n              provider.save\n\n              @env.ui.success(I18n.t(\"cloud_command.provider.create_success\",\n                architecture: options[:architecture], provider: provider.name, org: org, box_name: box, version: version.version))\n              format_box_results(provider, @env)","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/plugins/commands/cloud/provider/create.rb#L56-L92","documentation":"Warning from `vagrant cloud provider create` (plugins/commands/cloud/provider/create.rb) when no --url was supplied. The provider record is still created on Vagrant Cloud, but without a hosted box file URL, so the message reminds you that you must later run `vagrant cloud provider upload` to attach the actual box file. It is a workflow hint, not a failure (the create proceeds).","triggerScenarios":"Running `vagrant cloud provider create org/box 1.0.0 virtualbox` with no --url flag; the provider shell is created with checksum/architecture metadata but no asset URL.","commonSituations":"Split publish workflows where metadata is created first and the large box file is uploaded separately (common for slow links); forgetting the second step and shipping a provider entry users cannot download; CI jobs that create providers from templates and inject the file later.","solutions":["Finish the workflow: upload the file with `vagrant cloud provider upload org/box 1.0.0 virtualbox --file /path/to.box`.","Or avoid the split entirely by passing --url <https://host/box.box> at create time if you self-host the artifact.","Alternatively use the single-shot `vagrant cloud publish org/box 1.0.0 virtualbox /path/to.box` which creates and uploads in one command.","Verify the provider is complete before releasing: `vagrant cloud box show org/box` should list a URL or your uploaded file."],"exampleFix":"# before\nvagrant cloud provider create myorg/app 1.0.0 virtualbox\n# -> No URL was provided ... (provider exists but has no box file)\n\n# after (one-shot create + upload)\nvagrant cloud publish myorg/app 1.0.0 virtualbox ./app.box --release","handlingStrategy":"validation","validationCode":"URL=${BOX_URL:-}\nif [ -z \"$URL\" ] && [ ! -f \"$BOX_FILE\" ]; then\n  echo \"either --url or a follow-up 'cloud provider upload' is required\" >&2; exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer one-shot `vagrant cloud publish org/box v p file.box` when the artifact is local.","Track 'provider created but not uploaded' steps in a checklist or pipeline state file.","Verify with `vagrant cloud box show` that a URL/file exists before releasing the version."],"tags":["vagrant","vagrant-cloud","provider-create","missing-url","publish-workflow"],"backgroundTag":"missing-asset-url","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}