{"record":{"id":"16f49d8eab49aa35","repo":"hashicorp/vagrant","slug":"this-will-revoke-version-version-from-box-fr","errorCode":null,"errorMessage":"This will revoke version %{version} from %{box} from Vagrant Cloud. This cannot be undone.","messagePattern":"This will revoke version %(.+?) from %(.+?) from Vagrant Cloud\\. This cannot be undone\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"plugins/commands/cloud/version/revoke.rb","lineNumber":37,"sourceCode":"              o.separator \"Revokes a version entry on Vagrant Cloud\"\n              o.separator \"\"\n              o.separator \"Options:\"\n              o.separator \"\"\n              o.on(\"-f\", \"--[no-]force\", \"Force revocation without confirmation\") do |f|\n                options[:force] = f\n              end\n            end\n\n            # Parse the options\n            argv = parse_options(opts)\n            return if !argv\n            if argv.size != 2\n              raise Vagrant::Errors::CLIInvalidUsage,\n                help: opts.help.chomp\n            end\n\n            if !options[:force]\n              @env.ui.warn(I18n.t(\"cloud_command.version.revoke_warn\", version: argv[1], box: argv.first))\n              cont = @env.ui.ask(I18n.t(\"cloud_command.continue\"))\n              return 1 if cont.strip.downcase != \"y\"\n            end\n\n            @client = client_login(@env)\n            org, box_name = argv.first.split('/', 2)\n            version = argv[1]\n\n            revoke_version(org, box_name, version, @client.token, options)\n          end\n\n          # Revoke release of box version\n          #\n          # @param [String] org Organization name\n          # @param [String] box_name Box name\n          # @param [String] version Version of the box\n          # @param [String] access_token User Vagrant Cloud access token\n          # @param [Hash] options Currently unused","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/hashicorp/vagrant/blob/35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5/plugins/commands/cloud/version/revoke.rb#L19-L55","documentation":"Safety warning printed by `vagrant cloud version revoke` before it pulls a released box version back from Vagrant Cloud, which cannot be undone. Shown only when --force is absent; the shared continue prompt then gates the revoke, and any answer other than \"y\" returns exit code 1.","triggerScenarios":"`vagrant cloud version revoke org/box 1.2.3` without --force, after argv parses as exactly [\"org/box\", version]. A non-y answer aborts with exit code 1 and the version stays released.","commonSituations":"Pulling back a bad or leaked version; scripted revocation hitting the interactive prompt; uncertainty because revocation is irreversible.","solutions":["Answer `y` at the prompt to revoke the release","Use `--force` in scripts to revoke without prompting","Answer anything but `y` to abort (exit code 1, version still released)","Confirm the target version with `vagrant cloud box info org/box` before running"],"exampleFix":"# before\nvagrant cloud version revoke acme/app 1.0.0   # interactive prompt\n# after (automation)\nvagrant cloud version revoke acme/app 1.0.0 --force","handlingStrategy":"validation","validationCode":"# Preflight: confirm the version is currently released before revoking\nvagrant cloud box info acme/app | grep -A2 \"1.0.0\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Reserve revoke for genuinely bad versions; it cannot be undone","Script revocations with --force but gate them behind an explicit version allowlist","Re-release via `vagrant cloud version release` if you revoke by mistake"],"tags":["vagrant","cloud","version","revoke","confirmation"],"backgroundTag":"destructive-operation-confirmation","analyzedSha":"35f3160f4ad6edc3a9f3aa9570adfc1a4d73aaa5","analyzedAt":"2026-08-21T13:34:32.514Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}