Unverified Commit bb31def0 authored by Jeffrey Morgan's avatar Jeffrey Morgan Committed by GitHub
Browse files

return code `499` when user cancels request while a model is loading (#3955)

parent 7fea1ecd
...@@ -442,7 +442,7 @@ func (s *llmServer) WaitUntilRunning(ctx context.Context) error { ...@@ -442,7 +442,7 @@ func (s *llmServer) WaitUntilRunning(ctx context.Context) error {
select { select {
case <-ctx.Done(): case <-ctx.Done():
slog.Info("context expired before server started") slog.Info("context expired before server started")
return fmt.Errorf("timed out waiting for llama runner to start") return fmt.Errorf("timed out waiting for llama runner to start: %w", ctx.Err())
case err := <-s.done: case err := <-s.done:
msg := "" msg := ""
if s.status != nil && s.status.LastErrMsg != "" { if s.status != nil && s.status.LastErrMsg != "" {
......
...@@ -146,6 +146,11 @@ func (s *Server) GenerateHandler(c *gin.Context) { ...@@ -146,6 +146,11 @@ func (s *Server) GenerateHandler(c *gin.Context) {
select { select {
case runner = <-rCh: case runner = <-rCh:
case err = <-eCh: case err = <-eCh:
if errors.Is(err, context.Canceled) {
c.JSON(499, gin.H{"error": "request canceled"})
return
}
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return return
} }
...@@ -389,6 +394,11 @@ func (s *Server) EmbeddingsHandler(c *gin.Context) { ...@@ -389,6 +394,11 @@ func (s *Server) EmbeddingsHandler(c *gin.Context) {
select { select {
case runner = <-rCh: case runner = <-rCh:
case err = <-eCh: case err = <-eCh:
if errors.Is(err, context.Canceled) {
c.JSON(499, gin.H{"error": "request canceled"})
return
}
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return return
} }
...@@ -1216,6 +1226,11 @@ func (s *Server) ChatHandler(c *gin.Context) { ...@@ -1216,6 +1226,11 @@ func (s *Server) ChatHandler(c *gin.Context) {
select { select {
case runner = <-rCh: case runner = <-rCh:
case err = <-eCh: case err = <-eCh:
if errors.Is(err, context.Canceled) {
c.JSON(499, gin.H{"error": "request canceled"})
return
}
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return return
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment