Handle 413 with user friendly message (#17870)

Add friendly message for 413 errors. Currently, 413 errors originate
from the nginx server.
This commit is contained in:
Etienne
2026-02-11 18:03:22 +01:00
committed by GitHub
parent c15536f9f8
commit 2f298307f9
3 changed files with 41 additions and 0 deletions
@@ -53,6 +53,7 @@ export interface Options<TCacheShape> extends ApolloClientOptions<TCacheShape> {
onTokenPairChange?: (tokenPair: AuthTokenPair) => void;
onUnauthenticatedError?: () => void;
onAppVersionMismatch?: (message: string) => void;
onPayloadTooLarge?: (message: string) => void;
currentWorkspaceMember: CurrentWorkspaceMember | null;
currentWorkspace: CurrentWorkspace | null;
extraLinks?: ApolloLink[];
@@ -74,6 +75,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
onTokenPairChange,
onUnauthenticatedError,
onAppVersionMismatch,
onPayloadTooLarge,
currentWorkspaceMember,
currentWorkspace,
extraLinks,
@@ -142,6 +144,9 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
if (this.isAuthenticationError(error)) {
return false;
}
if (this.isPayloadTooLargeError(error)) {
return false;
}
return Boolean(error);
},
},
@@ -296,6 +301,11 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
return handleTokenRenewal(operation, forward);
}
if (this.isPayloadTooLargeError(networkError as ServerError)) {
onPayloadTooLarge?.(t`Uploaded content is too large.`);
return;
}
if (isDebugMode === true) {
logDebug(`[Network error]: ${networkError}`);
}
@@ -344,6 +354,10 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
return error.statusCode === 401;
}
private isPayloadTooLargeError(error: ServerError): boolean {
return error.statusCode === 413;
}
updateWorkspaceMember(workspaceMember: CurrentWorkspaceMember | null) {
this.currentWorkspaceMember = workspaceMember;
}