diff --git a/internal/services/runservice/api/api.go b/internal/services/runservice/api/api.go index 65d27f5..a125788 100644 --- a/internal/services/runservice/api/api.go +++ b/internal/services/runservice/api/api.go @@ -195,9 +195,9 @@ func (h *LogsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { if sendError { switch { case util.IsNotExist(err): - http.Error(w, err.Error(), http.StatusNotFound) + httpError(w, util.NewErrNotExist(errors.Errorf("log doesn't exist: %w", err))) default: - http.Error(w, err.Error(), http.StatusInternalServerError) + httpError(w, err) } } } @@ -241,15 +241,18 @@ func (h *LogsHandler) readTaskLogs(ctx context.Context, runID, taskID string, se et, err := store.GetExecutorTask(ctx, h.e, task.ID) if err != nil { + if err == etcd.ErrKeyNotFound { + return util.NewErrNotExist(errors.Errorf("executor task with id %q doesn't exist", task.ID)), true + } return err, true } executor, err := store.GetExecutor(ctx, h.e, et.Spec.ExecutorID) - if err != nil && err != etcd.ErrKeyNotFound { + if err != nil { + if err == etcd.ErrKeyNotFound { + return util.NewErrNotExist(errors.Errorf("executor with id %q doesn't exist", et.Spec.ExecutorID)), true + } return err, true } - if executor == nil { - return util.NewErrNotExist(errors.Errorf("executor with id %q doesn't exist", et.Spec.ExecutorID)), true - } var url string if setup {