diff --git a/pkg/gateway/gateway.go b/pkg/gateway/gateway.go index 8be84bdf6..1585f33e2 100644 --- a/pkg/gateway/gateway.go +++ b/pkg/gateway/gateway.go @@ -111,7 +111,7 @@ func (p *startupBlockedProvider) GetDefaultModel() string { } // Run starts the gateway runtime using the configuration loaded from configPath. -func Run(debug bool, homePath, configPath string, allowEmptyStartup bool) error { +func Run(debug bool, homePath, configPath string, allowEmptyStartup bool) (runErr error) { panicPath := filepath.Join(homePath, logPath, panicFile) panicFunc, err := logger.InitPanic(panicPath) if err != nil { @@ -129,6 +129,17 @@ func Run(debug bool, homePath, configPath string, allowEmptyStartup bool) error } else { logger.SetLevelFromString(config.ResolveGatewayLogLevel(configPath)) } + defer func() { + if runErr != nil { + logger.ErrorCF("gateway", "Gateway startup failed", map[string]any{ + "config_path": configPath, + "error": runErr.Error(), + "home_path": homePath, + "allow_empty": allowEmptyStartup, + "debug": debug, + }) + } + }() cfg, err := config.LoadConfig(configPath) if err != nil {