{"record":{"id":"7d9d7893369cebc2","repo":"jenkinsci/jenkins","slug":"view-already-exists","errorCode":null,"errorMessage":"View ' already exists","messagePattern":"View ' already exists","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/hudson/cli/CreateViewCommand.java","lineNumber":65,"sourceCode":"    }\n\n    @Override\n    protected int run() throws Exception {\n\n        final Jenkins jenkins = Jenkins.get();\n        jenkins.checkPermission(View.CREATE);\n\n        View newView;\n        try {\n\n            newView = View.createViewFromXML(viewName, stdin);\n        } catch (Failure ex) {\n            throw new IllegalArgumentException(\"Invalid view name: \" + ex.getMessage());\n        }\n\n        final String newName = newView.getViewName();\n        if (jenkins.getView(newName) != null) {\n            throw new IllegalStateException(\"View '\" + newName + \"' already exists\");\n        }\n\n        jenkins.addView(newView);\n\n        return 0;\n    }\n}\n","sourceCodeStart":47,"sourceCodeEnd":73,"githubUrl":"https://github.com/jenkinsci/jenkins/blob/2e228ff40b14dbc8b14ffbc6edf0e4383cf744fc/core/src/main/java/hudson/cli/CreateViewCommand.java#L47-L73","documentation":"`CreateViewCommand.run()` after creating the view from XML, resolves its final name via `newView.getViewName()` and checks `jenkins.getView(newName) != null`. If a view with that name already exists, IllegalStateException 'View '<newName>' already exists' is thrown before `addView`.","triggerScenarios":"Running `java -jar jenkins-cli.jar create-view <name> < view.xml` where a view named <name> already exists on the root (or targeted) Jenkins.","commonSituations":"Re-running a create-view script; importing a view whose name matches an existing one; provisioning a default view name repeatedly.","solutions":["Choose a unique view name (override via the argument or edit the XML).","Delete the existing view first (`delete-view <name>`) then recreate.","Check `jenkins.getView(name) == null` before creating in automation."],"exampleFix":"// before:\n//   java -jar jenkins-cli.jar create-view All < view.xml  // 'All' exists\n//   -> IllegalStateException: View 'All' already exists\n//\n// after: rename or delete first\n//   java -jar jenkins-cli.jar delete-view All\n//   java -jar jenkins-cli.jar create-view All < view.xml","handlingStrategy":"validation","validationCode":"// Check the view name is free before create-view\nif (jenkins.getView(newName) != null) {\n    throw new IllegalStateException(\"View '\" + newName + \"' already exists\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Delete or rename existing views before creating one with the same name.","Make view provisioning idempotent (check existence first)."],"tags":["jenkins","cli","view","duplicate","create"],"backgroundTag":null,"analyzedSha":"2e228ff40b14dbc8b14ffbc6edf0e4383cf744fc","analyzedAt":"2026-08-14T07:07:15.274Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}