router-for-me/CLIProxyAPI · error
resolve plugins directory: %w
Error message
resolve plugins directory: %w
What it means
Error "resolve plugins directory: %w" thrown in router-for-me/CLIProxyAPI.
Source
Thrown at internal/config/plugin_path.go:22
"fmt"
"os"
"path/filepath"
"strings"
)
const defaultPluginsDir = "plugins"
// ResolvePluginsDir normalizes the plugin directory for consistent use throughout the app.
// It expands a leading tilde (~) to the user's home directory and defaults empty values to plugins.
func ResolvePluginsDir(pluginsDir string) (string, error) {
pluginsDir = strings.TrimSpace(pluginsDir)
if pluginsDir == "" {
pluginsDir = defaultPluginsDir
}
if strings.HasPrefix(pluginsDir, "~") {
homeDir, errUserHomeDir := os.UserHomeDir()
if errUserHomeDir != nil {
return "", fmt.Errorf("resolve plugins directory: %w", errUserHomeDir)
}
remainder := strings.TrimPrefix(pluginsDir, "~")
remainder = strings.TrimLeft(remainder, "/\\")
if remainder == "" {
return filepath.Clean(homeDir), nil
}
normalized := strings.ReplaceAll(remainder, "\\", "/")
return filepath.Clean(filepath.Join(homeDir, filepath.FromSlash(normalized))), nil
}
return filepath.Clean(pluginsDir), nil
}
// ResolvePluginsDir resolves and stores the effective plugin directory.
func (cfg *Config) ResolvePluginsDir() error {
if cfg == nil {
return nil
}
pluginsDir, errResolvePluginsDir := ResolvePluginsDir(cfg.Plugins.Dir)View on GitHub (pinned to 78f0c4079e)
Solutions
- Verify the plugins directory path exists or can be created.
- Check the wrapped error for path resolution or permission failures.
When it happens
Trigger: Thrown at internal/config/plugin_path.go:22 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of router-for-me/CLIProxyAPI@78f0c4079e (2026-08-15).
Data as JSON: /api/errors/2fc534ac69220e5d.
Report an issue: GitHub.