Skip to content

Commit 222ec7b

Browse files
committed
Handle exceptional errors when retrying connections
1 parent 892b0c0 commit 222ec7b

File tree

3 files changed

+683
-11
lines changed

3 files changed

+683
-11
lines changed

src/__fixtures__/errors.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { Code, ConnectError } from '@connectrpc/connect';
2+
3+
// Non-retryable ConnectError codes
4+
export const unauthenticatedError = new ConnectError(
5+
'User is not authenticated',
6+
Code.Unauthenticated
7+
);
8+
9+
export const permissionDeniedError = new ConnectError(
10+
'Permission denied to access resource',
11+
Code.PermissionDenied
12+
);
13+
14+
export const invalidArgumentError = new ConnectError(
15+
'Invalid argument provided',
16+
Code.InvalidArgument
17+
);
18+
19+
export const notFoundError = new ConnectError(
20+
'Resource not found',
21+
Code.NotFound
22+
);
23+
24+
export const failedPreconditionError = new ConnectError(
25+
'Failed precondition check',
26+
Code.FailedPrecondition
27+
);
28+
29+
export const outOfRangeError = new ConnectError(
30+
'Value out of range',
31+
Code.OutOfRange
32+
);
33+
34+
export const unimplementedError = new ConnectError(
35+
'Method not implemented',
36+
Code.Unimplemented
37+
);
38+
39+
// Retryable ConnectError codes
40+
export const unavailableError = new ConnectError(
41+
'Service unavailable',
42+
Code.Unavailable
43+
);
44+
45+
export const deadlineExceededError = new ConnectError(
46+
'Deadline exceeded',
47+
Code.DeadlineExceeded
48+
);
49+
50+
export const abortedError = new ConnectError('Operation aborted', Code.Aborted);
51+
52+
export const internalError = new ConnectError(
53+
'Internal server error',
54+
Code.Internal
55+
);
56+
57+
export const unknownError = new ConnectError(
58+
'Unknown error occurred',
59+
Code.Unknown
60+
);
61+
62+
// Non-retryable standard errors
63+
export const configurationError = new Error('Invalid configuration provided');
64+
65+
export const cannotDialError = new Error(
66+
'cannot dial "example.com" directly, please use a local url instead.'
67+
);
68+
69+
// Retryable standard errors
70+
export const networkError = new Error('Network connection failed');
71+
72+
export const timeoutError = new Error('Connection timed out');

0 commit comments

Comments
 (0)