MCPcopy Create free account
hub / github.com/coder/aibridge / writeUpstreamError

Method writeUpstreamError

intercept/chatcompletions/base.go:177–199  ·  view source on GitHub ↗

writeUpstreamError marshals and writes a given error.

(w http.ResponseWriter, oaiErr *responseError)

Source from the content-addressed store, hash-verified

175
176// writeUpstreamError marshals and writes a given error.
177func (i *interceptionBase) writeUpstreamError(w http.ResponseWriter, oaiErr *responseError) {
178 if oaiErr == nil {
179 return
180 }
181
182 w.Header().Set("Content-Type", "application/json")
183 w.WriteHeader(oaiErr.StatusCode)
184
185 out, err := json.Marshal(oaiErr)
186 if err != nil {
187 i.logger.Warn(context.Background(), "failed to marshal upstream error", slog.Error(err), slog.F("error_payload", fmt.Sprintf("%+v", oaiErr)))
188 // Response has to match expected format.
189 _, _ = w.Write([]byte(`{
190 "error": {
191 "type": "error",
192 "message":"error marshaling upstream error",
193 "code": "server_error"
194 },
195}`))
196 } else {
197 _, _ = w.Write(out)
198 }
199}
200
201func (i *interceptionBase) hasInjectableTools() bool {
202 return i.mcpProxy != nil && len(i.mcpProxy.ListTools()) > 0

Callers 2

ProcessRequestMethod · 0.45
ProcessRequestMethod · 0.45

Calls 4

HeaderMethod · 0.80
WriteHeaderMethod · 0.45
ErrorMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected