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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user