{"record":{"id":"0b9c86954a499f09","repo":"abpframework/abp","slug":"local-paths-are-not-specified","errorCode":null,"errorMessage":"Local paths are not specified!","messagePattern":"Local paths are not specified!","errorType":"exception","errorClass":"CliUsageException","httpStatus":null,"severity":"error","filePath":"framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs","lineNumber":51,"sourceCode":"                \"Specified directory does not exist.\" +\n                Environment.NewLine + Environment.NewLine +\n                GetUsageInfo()\n            );\n        }\n\n        await _localReferenceConverter.ConvertAsync(workingDirectory, GetPaths(commandLineArgs));\n    }\n\n    private List<string> GetPaths(CommandLineArgs commandLineArgs)\n    {\n        var paths = commandLineArgs.Options.GetOrNull(\n            Options.LocalPaths.Short,\n            Options.LocalPaths.Long\n        );\n\n        if (paths == null)\n        {\n            throw new CliUsageException(\n                \"Local paths are not specified!\" +\n                Environment.NewLine + Environment.NewLine +\n                GetUsageInfo()\n            );\n        }\n\n        return paths.Split(\"|\").Select(x=> x.Trim()).ToList();\n    }\n\n    private string GetWorkingDirectory(CommandLineArgs commandLineArgs)\n    {\n        var path = commandLineArgs.Options.GetOrNull(\n            Options.SolutionPath.Short,\n            Options.SolutionPath.Long\n        );\n\n        if (path == null)\n        {","sourceCodeStart":33,"sourceCodeEnd":69,"githubUrl":"https://github.com/abpframework/abp/blob/7ed43b1931b9df46a50c0c59148a18645641d0df/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs#L33-L69","documentation":"Thrown by SwitchToLocal.GetPaths when the -p/--paths option is entirely absent from the command line. This option is required and specifies the local source paths where the ABP framework source code lives. Multiple paths are separated by the pipe character '|'. The GetOrNull call returns null when the option key is not present in the parsed command-line arguments.","triggerScenarios":"Running 'abp switch-to-local' without the --paths flag at all. For example: 'abp switch-to-local' alone, or 'abp switch-to-local -s /my/project' without -p.","commonSituations":"Developer forgets the required --paths option, confuses it with another flag name, or expects it to default to something (it does not).","solutions":["Add --paths <local-abp-source-path> to your command","For multiple source paths, separate with pipe: --paths \"D:\\Github\\abp|D:\\Github\\volo\"","Run 'abp help switch-to-local' to see the required options"],"exampleFix":"// before\nabp switch-to-local\n\n// after\nabp switch-to-local --paths D:\\Github\\abp","handlingStrategy":"validation","validationCode":"// Validate that --paths is provided\nif (!commandLineArgs.Options.ContainsKey(\"p\") && !commandLineArgs.Options.ContainsKey(\"paths\"))\n{\n    Console.Error.WriteLine(\"Error: --paths is required. Example: abp switch-to-local --paths /path/to/abp\");\n    return;\n}","typeGuard":null,"tryCatchPattern":"try\n{\n    await switchToLocal.ExecuteAsync(commandLineArgs);\n}\ncatch (CliUsageException ex) when (ex.Message.Contains(\"Local paths are not specified\"))\n{\n    Console.Error.WriteLine(\"Missing required --paths option. Usage: abp switch-to-local --paths <local-source-path>\");\n}","preventionTips":["Always include --paths when running switch-to-local","For multiple paths, remember the pipe separator: --paths \"path1|path2\"","Run 'abp help switch-to-local' to see examples"],"tags":["switch-to-local","cli","missing-argument","command-line"],"backgroundTag":null,"analyzedSha":"7ed43b1931b9df46a50c0c59148a18645641d0df","analyzedAt":"2026-08-13T16:26:11.351Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}