MCPcopy Create free account
hub / github.com/pollinations/pollinations / buildClientError

Function buildClientError

apps/chat/src/utils/api.js:37–65  ·  view source on GitHub ↗
(code)

Source from the content-addressed store, hash-verified

35// short, friendly summary, and the UI uses `errorType` to decide how to
36// react (e.g. show the BYOP button on auth failures).
37const buildClientError = (code) => {
38 let errorType = "unknown";
39 let message = "Something went wrong. Please try again.";
40
41 if (code === 401) {
42 errorType = "auth";
43 message = "Authentication failed. Add your own API key to continue.";
44 } else if (code === 402) {
45 errorType = "balance";
46 message = "Out of Pollen credits. Top up or use your own API key.";
47 } else if (code === 403) {
48 errorType = "permission";
49 message = "This API key doesn't have access to that model.";
50 } else if (code === 429) {
51 errorType = "rate_limit";
52 message = "You're sending requests too quickly. Try again in a moment.";
53 } else if (code >= 500) {
54 errorType = "server";
55 message = "The service is temporarily unavailable. Please try again.";
56 } else if (code >= 400) {
57 errorType = "client";
58 message = "Request could not be completed.";
59 }
60
61 const err = new Error(message);
62 err.code = code;
63 err.errorType = errorType;
64 return err;
65};
66
67const parseApiError = async (response) => {
68 // Drain the body so the connection isn't left open, but never reflect

Callers 1

parseApiErrorFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected