{"record":{"id":"78520c1699864cab","repo":"abpframework/abp","slug":"project-name-is-missing","errorCode":null,"errorMessage":"Project name is missing!","messagePattern":"Project name is missing!","errorType":"exception","errorClass":"CliUsageException","httpStatus":null,"severity":"error","filePath":"framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs","lineNumber":74,"sourceCode":"            angularPwaSupportAdder,\n            initialMigrationCreator,\n            themePackageAdder,\n            eventBus,\n            bundlingService,\n            angularThemeConfigurer,\n            cliVersionService)\n    {\n        TemplateInfoProvider = templateInfoProvider;\n        TemplateProjectBuilder = templateProjectBuilder;\n        _telemetryService = telemetryService;\n    }\n\n    public async Task ExecuteAsync(CommandLineArgs commandLineArgs)\n    {\n        var projectName = NamespaceHelper.NormalizeNamespace(commandLineArgs.Target);\n        if (string.IsNullOrWhiteSpace(projectName))\n        {\n            throw new CliUsageException(\"Project name is missing!\" + Environment.NewLine + Environment.NewLine + GetUsageInfo());\n        }\n\n        ProjectNameValidator.Validate(projectName);\n\n        Logger.LogInformation(\"Creating your project...\");\n        Logger.LogInformation(\"Project name: \" + projectName);\n\n        var template = commandLineArgs.Options.GetOrNull(Options.Template.Short, Options.Template.Long);\n        if (template != null)\n        {\n            Logger.LogInformation(\"Template: \" + template);\n        }\n        else\n        {\n            template = (await TemplateInfoProvider.GetDefaultAsync()).Name;\n        }\n\n        var isTiered = commandLineArgs.Options.ContainsKey(Options.Tiered.Long);","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/abpframework/abp/blob/7ed43b1931b9df46a50c0c59148a18645641d0df/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs#L56-L92","documentation":"Thrown by NewCommand.ExecuteAsync when the project name (commandLineArgs.Target after namespace normalization) is null or whitespace. The `abp new` command requires a project name as its positional argument. The error includes usage info appended via GetUsageInfo(). After validation, it also runs ProjectNameValidator.Validate() for format compliance.","triggerScenarios":"Running `abp new` without a project name, or passing only whitespace. NamespaceHelper.NormalizeNamespace() returns an empty/null string and IsNullOrWhiteSpace() catches it.","commonSituations":"Developer runs `abp new --template app` forgetting the project name, or passes the name as a named option instead of positional. Also from scripts that construct the command dynamically with a missing variable.","solutions":["Provide a project name as the first positional argument: `abp new MyCompany.MyProject`","Ensure the name follows .NET namespace conventions (PascalCase, alphanumeric, dots for separation)","Use `abp new --help` to see the full usage including template and other options"],"exampleFix":"// before\nabp new --template app\n\n// after\nabp new MyCompany.MyProject --template app","handlingStrategy":"validation","validationCode":"// Validate project name before calling NewCommand\nvar projectName = NamespaceHelper.NormalizeNamespace(rawProjectName);\nif (string.IsNullOrWhiteSpace(projectName))\n{\n    Console.Error.WriteLine(\"Error: Project name is required. Example: abp new MyCompany.MyProject\");\n    return;\n}","typeGuard":null,"tryCatchPattern":"try\n{\n    await newCommand.ExecuteAsync(commandLineArgs);\n}\ncatch (CliUsageException ex) when (ex.Message.Contains(\"Project name is missing\"))\n{\n    logger.LogError(\"Usage: abp new <ProjectName> [--template <template>]\");\n}","preventionTips":["Always supply a project name as the first positional argument","Use .NET namespace-compliant names (PascalCase, dots allowed)","Validate that script variables supplying the project name are populated"],"tags":["cli","abp-cli","missing-argument","project-creation","validation"],"backgroundTag":null,"analyzedSha":"7ed43b1931b9df46a50c0c59148a18645641d0df","analyzedAt":"2026-08-13T16:26:11.351Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}