flipped-aurora/gin-vue-admin · critical
panic(err) — standalone MCP logger init failed
Error message
panic(err) — standalone MCP logger init failed
What it means
After config loads, the standalone MCP server initializes its logger; failure (e.g. cannot create/open the log file or bad logger config) triggers panic(err), aborting startup. This guarantees the service never runs without observability.
Source
Thrown at server/cmd/mcp/main.go:19
package main
import (
"fmt"
"github.com/flipped-aurora/gin-vue-admin/server/global"
mcpTool "github.com/flipped-aurora/gin-vue-admin/server/mcp"
"github.com/flipped-aurora/gin-vue-admin/server/utils/logger"
_ "go.uber.org/automaxprocs"
)
func main() {
configPath, err := loadStandaloneConfig()
if err != nil {
panic(err)
}
if err := initializeStandaloneLogger(); err != nil {
panic(err)
}
addr := fmt.Sprintf(":%d", global.GVA_CONFIG.MCP.Addr)
server := mcpTool.NewStreamableHTTPServer()
logger.Bg().Mod("cli").
Field("config", configPath).
Field("addr", addr).
Field("path", global.GVA_CONFIG.MCP.Path).
Field("upstream", global.GVA_CONFIG.MCP.UpstreamBaseURL).
Info("mcp独立服务启动")
if err := server.Start(addr); err != nil {
logger.Bg().Mod("cli").Err(err).Error("mcp独立服务启动失败")
panic(err)
}
}
View on GitHub (pinned to 3136500ef3)
Solutions
- Check the configured log directory exists and is writable by the process user (mkdir -p, chown)
- Point the log output to stdout/stderr or a writable path in containers
- Verify logger-related config keys are valid
- Re-run the binary after fixing permissions
Example fix
// before logs: /var/log/gva/mcp.log # dir missing // after mkdir -p /var/log/gva && chown app:app /var/log/gva
Defensive patterns
Strategy: validation
Validate before calling
logDir := filepath.Dir(logPath); if err := os.MkdirAll(logDir, 0o755); err != nil { log.Fatalf("cannot create log dir: %v", err) } Try / catch
if err := initializeStandaloneLogger(); err != nil { log.Printf("logger init failed: %v", err); os.Exit(1) } // or recover in a supervisor wrapper Prevention
- Ensure the log directory exists and is writable by the service user before startup
- In containers, log to stdout/stderr instead of files
- Create log dirs in the entrypoint script (mkdir -p)
- Verify permissions after deploys as a non-root user
When it happens
Trigger: initializeStandaloneLogger returns an error: log directory does not exist or is unwritable, log file path invalid, or logger stack initialization fails for the loaded config.
Common situations: Docker container with read-only filesystem and no writable log dir; log path pointing to a directory deleted after deploy; running as non-root user lacking write access to the configured log path.
Related errors
- panic(err) — standalone MCP config load failed
- 未找到 MCP 独立配置文件,请在当前目录、cmd/mcp 目录或通过 -config / GVA_MCP_CONFIG
- 未能自动识别项目根目录,请在 MCP 配置中设置 autocode.root
- fatal error config file: %w
- fatal error unmarshal config: %w
AI-assisted analysis of flipped-aurora/gin-vue-admin@3136500ef3 (2026-08-31).
Data as JSON: /api/errors/638e0ab2f149aa35.
Report an issue: GitHub.