fix(chat,docker): return 503 for rate-limited providers and bundle node-machine-id
- chat: always return 503 Service Unavailable when all credentials are rate-limited - Dockerfile: explicitly copy node-machine-id into standalone runtime image
This commit is contained in:
@@ -40,6 +40,8 @@ COPY --from=builder /app/node_modules/next ./node_modules/next
|
|||||||
# sql.js loads dist/sql-wasm.wasm by path at runtime; tracing only follows JS imports,
|
# sql.js loads dist/sql-wasm.wasm by path at runtime; tracing only follows JS imports,
|
||||||
# so the last-resort DB driver would abort with ENOENT on the missing binary.
|
# so the last-resort DB driver would abort with ENOENT on the missing binary.
|
||||||
COPY --from=builder /app/node_modules/sql.js ./node_modules/sql.js
|
COPY --from=builder /app/node_modules/sql.js ./node_modules/sql.js
|
||||||
|
# node-machine-id is createRequire-loaded at runtime; tracing omits it.
|
||||||
|
COPY --from=builder /app/node_modules/node-machine-id ./node_modules/node-machine-id
|
||||||
|
|
||||||
RUN mkdir -p /app/data && chown -R node:node /app && \
|
RUN mkdir -p /app/data && chown -R node:node /app && \
|
||||||
mkdir -p /app/data-home && chown node:node /app/data-home && \
|
mkdir -p /app/data-home && chown node:node /app/data-home && \
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ async function handleSingleModelChat(body, modelStr, clientRawRequest = null, re
|
|||||||
if (!credentials || credentials.allRateLimited) {
|
if (!credentials || credentials.allRateLimited) {
|
||||||
if (credentials?.allRateLimited) {
|
if (credentials?.allRateLimited) {
|
||||||
const errorMsg = lastError || credentials.lastError || "Unavailable";
|
const errorMsg = lastError || credentials.lastError || "Unavailable";
|
||||||
const status = lastStatus || Number(credentials.lastErrorCode) || HTTP_STATUS.SERVICE_UNAVAILABLE;
|
const status = HTTP_STATUS.SERVICE_UNAVAILABLE;
|
||||||
log.warn("CHAT", `[${provider}/${model}] ${errorMsg} (${credentials.retryAfterHuman})`);
|
log.warn("CHAT", `[${provider}/${model}] ${errorMsg} (${credentials.retryAfterHuman})`);
|
||||||
return unavailableResponse(status, `[${provider}/${model}] ${errorMsg}`, credentials.retryAfter, credentials.retryAfterHuman);
|
return unavailableResponse(status, `[${provider}/${model}] ${errorMsg}`, credentials.retryAfter, credentials.retryAfterHuman);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user