diff --git a/internal/api/handler/invoke.go b/internal/api/handler/invoke.go index 797cab3..7aa641f 100644 --- a/internal/api/handler/invoke.go +++ b/internal/api/handler/invoke.go @@ -59,6 +59,12 @@ func (h *Handler) InvokeFunction(w http.ResponseWriter, r *http.Request) { resp, err := httpClient.Do(proxyReq) if err != nil { + // "no such host" — Service не существует (функция удалена), возвращаем 404. + // Это отличается от временной сетевой ошибки: NXDOMAIN строго означает отсутствие записи. + if strings.Contains(err.Error(), "no such host") { + writeJSON(w, http.StatusNotFound, errResp("function not found")) + return + } h.Log.Error("invoke: function unreachable", "err", err, "ns", ns, "fn", name, "target", target) writeJSON(w, http.StatusBadGateway, errResp("function unreachable: "+err.Error())) return