server/internal/registry: make pull send errors with Error field (#10326)

Previously, the pull handler would send an error message in the Status
field, this prevented the client from using the message as a signal to
stop. In the case of the "run" command, it would follow the pull with a
"show" which would print a nearly identical "not found" message for
unresolved models.

Fixes #10307
This commit is contained in:
Blake Mizerany
2025-04-18 18:12:28 -07:00
committed by GitHub
parent 40b8fdbdca
commit 4e535e6188
2 changed files with 9 additions and 7 deletions

View File

@@ -221,7 +221,7 @@ func TestServerPull(t *testing.T) {
got = s.send(t, "POST", "/api/pull", `{"model": "unknown"}`)
checkResponse(got, `
{"status":"error: model \"unknown\" not found"}
{"code":"not_found","error":"model \"unknown\" not found"}
`)
got = s.send(t, "DELETE", "/api/pull", `{"model": "smol"}`)
@@ -235,7 +235,7 @@ func TestServerPull(t *testing.T) {
got = s.send(t, "POST", "/api/pull", `{"model": "://"}`)
checkResponse(got, `
{"status":"error: invalid or missing name: \"\""}
{"code":"bad_request","error":"invalid or missing name: \"\""}
`)
// Non-streaming pulls