async_nats/jetstream/
errors.rs1use std::{error, fmt};
15
16use serde::{Deserialize, Serialize};
17
18#[derive(Debug, PartialEq, Eq, Clone, Copy, Deserialize, Serialize)]
19pub struct ErrorCode(u64);
20
21impl ErrorCode {
22 pub const CLUSTER_PEER_NOT_MEMBER: ErrorCode = ErrorCode(10040);
24
25 pub const CONSUMER_EPHEMERAL_WITH_DURABLE: ErrorCode = ErrorCode(10019);
27
28 pub const STREAM_EXTERNAL_DELETE_PREFIX_OVERLAPS: ErrorCode = ErrorCode(10022);
30
31 pub const ACCOUNT_RESOURCES_EXCEEDED: ErrorCode = ErrorCode(10002);
33
34 pub const CLUSTER_NOT_AVAILABLE: ErrorCode = ErrorCode(10008);
36
37 pub const STREAM_SUBJECT_OVERLAP: ErrorCode = ErrorCode(10065);
39
40 pub const STREAM_WRONG_LAST_SEQUENCE: ErrorCode = ErrorCode(10071);
42
43 pub const NAME_NOT_MATCH_SUBJECT: ErrorCode = ErrorCode(10073);
45
46 pub const CLUSTER_NO_PEERS: ErrorCode = ErrorCode(10005);
48
49 pub const CONSUMER_EPHEMERAL_WITH_DURABLE_NAME: ErrorCode = ErrorCode(10020);
51
52 pub const INSUFFICIENT_RESOURCES: ErrorCode = ErrorCode(10023);
54
55 pub const MIRROR_MAX_MESSAGE_SIZE_TOO_BIG: ErrorCode = ErrorCode(10030);
57
58 pub const STREAM_DELETE_FAILED: ErrorCode = ErrorCode(10067);
60
61 pub const BAD_REQUEST: ErrorCode = ErrorCode(10003);
63
64 pub const NOT_SUPPORTED_IN_CLUSTER_MODE: ErrorCode = ErrorCode(10036);
66
67 pub const CONSUMER_NOT_FOUND: ErrorCode = ErrorCode(10014);
69
70 pub const SOURCE_MAX_MESSAGE_SIZE_TOO_BIG: ErrorCode = ErrorCode(10046);
72
73 pub const STREAM_ASSIGNMENT: ErrorCode = ErrorCode(10048);
75
76 pub const STREAM_MESSAGE_EXCEEDS_MAXIMUM: ErrorCode = ErrorCode(10054);
78
79 pub const STREAM_CREATE_TEMPLATE: ErrorCode = ErrorCode(10066);
81
82 pub const INVALID_JSON: ErrorCode = ErrorCode(10025);
84
85 pub const STREAM_INVALID_EXTERNAL_DELIVERY_SUBJECT: ErrorCode = ErrorCode(10024);
87
88 pub const STREAM_RESTORE: ErrorCode = ErrorCode(10062);
90
91 pub const CLUSTER_INCOMPLETE: ErrorCode = ErrorCode(10004);
93
94 pub const NO_ACCOUNT: ErrorCode = ErrorCode(10035);
96
97 pub const RAFT_GENERAL: ErrorCode = ErrorCode(10041);
99
100 pub const RESTORE_SUBSCRIBE_FAILED: ErrorCode = ErrorCode(10042);
102
103 pub const STREAM_DELETE: ErrorCode = ErrorCode(10050);
105
106 pub const STREAM_EXTERNAL_API_OVERLAP: ErrorCode = ErrorCode(10021);
108
109 pub const MIRROR_WITH_SUBJECTS: ErrorCode = ErrorCode(10034);
111
112 pub const JETSTREAM_NOT_ENABLED: ErrorCode = ErrorCode(10076);
114
115 pub const JETSTREAM_NOT_ENABLED_FOR_ACCOUNT: ErrorCode = ErrorCode(10039);
117
118 pub const SEQUENCE_NOT_FOUND: ErrorCode = ErrorCode(10043);
120
121 pub const STREAM_MIRROR_NOT_UPDATABLE: ErrorCode = ErrorCode(10055);
123
124 pub const STREAM_SEQUENCE_NOT_MATCH: ErrorCode = ErrorCode(10063);
126
127 pub const STREAM_WRONG_LAST_MESSAGE_ID: ErrorCode = ErrorCode(10070);
129
130 pub const TEMP_STORAGE_FAILED: ErrorCode = ErrorCode(10072);
132
133 pub const STORAGE_RESOURCES_EXCEEDED: ErrorCode = ErrorCode(10047);
135
136 pub const STREAM_MISMATCH: ErrorCode = ErrorCode(10056);
138
139 pub const STREAM_NOT_MATCH: ErrorCode = ErrorCode(10060);
141
142 pub const MIRROR_CONSUMER_SETUP_FAILED: ErrorCode = ErrorCode(10029);
144
145 pub const NOT_EMPTY_REQUEST: ErrorCode = ErrorCode(10038);
147
148 pub const STREAM_NAME_EXIST: ErrorCode = ErrorCode(10058);
150
151 pub const CLUSTER_TAGS: ErrorCode = ErrorCode(10011);
153
154 pub const MAXIMUM_CONSUMERS_LIMIT: ErrorCode = ErrorCode(10026);
156
157 pub const SOURCE_CONSUMER_SETUP_FAILED: ErrorCode = ErrorCode(10045);
159
160 pub const CONSUMER_CREATE: ErrorCode = ErrorCode(10012);
162
163 pub const CONSUMER_DURABLE_NAME_NOT_IN_SUBJECT: ErrorCode = ErrorCode(10016);
165
166 pub const STREAM_LIMITS: ErrorCode = ErrorCode(10053);
168
169 pub const STREAM_REPLICAS_NOT_UPDATABLE: ErrorCode = ErrorCode(10061);
171
172 pub const STREAM_TEMPLATE_NOT_FOUND: ErrorCode = ErrorCode(10068);
174
175 pub const CLUSTER_NOT_ASSIGNED: ErrorCode = ErrorCode(10007);
177
178 pub const CLUSTER_NOT_LEADER: ErrorCode = ErrorCode(10009);
180
181 pub const CONSUMER_NAME_EXIST: ErrorCode = ErrorCode(10013);
183
184 pub const MIRROR_WITH_SOURCES: ErrorCode = ErrorCode(10031);
186
187 pub const STREAM_NOT_FOUND: ErrorCode = ErrorCode(10059);
189
190 pub const CLUSTER_REQUIRED: ErrorCode = ErrorCode(10010);
192
193 pub const CONSUMER_DURABLE_NAME_NOT_SET: ErrorCode = ErrorCode(10018);
195
196 pub const MAXIMUM_STREAMS_LIMIT: ErrorCode = ErrorCode(10027);
198
199 pub const MIRROR_WITH_START_SEQUENCE_AND_TIME: ErrorCode = ErrorCode(10032);
201
202 pub const STREAM_SNAPSHOT: ErrorCode = ErrorCode(10064);
204
205 pub const STREAM_UPDATE: ErrorCode = ErrorCode(10069);
207
208 pub const CLUSTER_NOT_ACTIVE: ErrorCode = ErrorCode(10006);
210
211 pub const CONSUMER_DURABLE_NAME_NOT_MATCH_SUBJECT: ErrorCode = ErrorCode(10017);
213
214 pub const MEMORY_RESOURCES_EXCEEDED: ErrorCode = ErrorCode(10028);
216
217 pub const MIRROR_WITH_SUBJECT_FILTERS: ErrorCode = ErrorCode(10033);
219
220 pub const STREAM_CREATE: ErrorCode = ErrorCode(10049);
222
223 pub const CLUSTER_SERVER_NOT_MEMBER: ErrorCode = ErrorCode(10044);
225
226 pub const NO_MESSAGE_FOUND: ErrorCode = ErrorCode(10037);
228
229 pub const SNAPSHOT_DELIVER_SUBJECT_INVALID: ErrorCode = ErrorCode(10015);
231
232 pub const STREAM_GENERALOR: ErrorCode = ErrorCode(10051);
234
235 pub const STREAM_INVALID_CONFIG: ErrorCode = ErrorCode(10052);
237
238 pub const STREAM_REPLICAS_NOT_SUPPORTED: ErrorCode = ErrorCode(10074);
240
241 pub const STREAM_MESSAGE_DELETE_FAILED: ErrorCode = ErrorCode(10057);
243
244 pub const PEER_REMAP: ErrorCode = ErrorCode(10075);
246
247 pub const STREAM_STORE_FAILED: ErrorCode = ErrorCode(10077);
249
250 pub const CONSUMER_CONFIG_REQUIRED: ErrorCode = ErrorCode(10078);
252
253 pub const CONSUMER_DELIVER_TO_WILDCARDS: ErrorCode = ErrorCode(10079);
255
256 pub const CONSUMER_PUSH_MAX_WAITING: ErrorCode = ErrorCode(10080);
258
259 pub const CONSUMER_DELIVER_CYCLE: ErrorCode = ErrorCode(10081);
261
262 pub const CONSUMER_MAX_PENDING_ACK_POLICY_REQUIRED: ErrorCode = ErrorCode(10082);
264
265 pub const CONSUMER_SMALL_HEARTBEAT: ErrorCode = ErrorCode(10083);
267
268 pub const CONSUMER_PULL_REQUIRES_ACK: ErrorCode = ErrorCode(10084);
270
271 pub const CONSUMER_PULL_NOT_DURABLE: ErrorCode = ErrorCode(10085);
273
274 pub const CONSUMER_PULL_WITH_RATE_LIMIT: ErrorCode = ErrorCode(10086);
276
277 pub const CONSUMER_MAX_WAITING_NEGATIVE: ErrorCode = ErrorCode(10087);
279
280 pub const CONSUMER_HEARTBEAT_REQUIRES_PUSH: ErrorCode = ErrorCode(10088);
282
283 pub const CONSUMER_FLOW_CONTROL_REQUIRES_PUSH: ErrorCode = ErrorCode(10089);
285
286 pub const CONSUMER_DIRECT_REQUIRES_PUSH: ErrorCode = ErrorCode(10090);
288
289 pub const CONSUMER_DIRECT_REQUIRES_EPHEMERAL: ErrorCode = ErrorCode(10091);
291
292 pub const CONSUMER_ON_MAPPED: ErrorCode = ErrorCode(10092);
294
295 pub const CONSUMER_FILTER_NOT_SUBSET: ErrorCode = ErrorCode(10093);
297
298 pub const CONSUMER_INVALID_POLICY: ErrorCode = ErrorCode(10094);
300
301 pub const CONSUMER_INVALID_SAMPLING: ErrorCode = ErrorCode(10095);
303
304 pub const STREAM_INVALID: ErrorCode = ErrorCode(10096);
306
307 pub const CONSUMER_WQ_REQUIRES_EXPLICIT_ACK: ErrorCode = ErrorCode(10098);
309
310 pub const CONSUMER_WQ_MULTIPLE_UNFILTERED: ErrorCode = ErrorCode(10099);
312
313 pub const CONSUMER_WQ_CONSUMER_NOT_UNIQUE: ErrorCode = ErrorCode(10100);
315
316 pub const CONSUMER_WQ_CONSUMER_NOT_DELIVER_ALL: ErrorCode = ErrorCode(10101);
318
319 pub const CONSUMER_NAME_TOO_LONG: ErrorCode = ErrorCode(10102);
321
322 pub const CONSUMER_BAD_DURABLE_NAME: ErrorCode = ErrorCode(10103);
324
325 pub const CONSUMER_STORE_FAILED: ErrorCode = ErrorCode(10104);
327
328 pub const CONSUMER_EXISTING_ACTIVE: ErrorCode = ErrorCode(10105);
330
331 pub const CONSUMER_REPLACEMENT_WITH_DIFFERENT_NAME: ErrorCode = ErrorCode(10106);
333
334 pub const CONSUMER_DESCRIPTION_TOO_LONG: ErrorCode = ErrorCode(10107);
336
337 pub const STREAM_HEADER_EXCEEDS_MAXIMUM: ErrorCode = ErrorCode(10097);
339
340 pub const CONSUMER_WITH_FLOW_CONTROL_NEEDS_HEARTBEATS: ErrorCode = ErrorCode(10108);
342
343 pub const STREAM_SEALED: ErrorCode = ErrorCode(10109);
345
346 pub const STREAM_PURGE_FAILED: ErrorCode = ErrorCode(10110);
348
349 pub const STREAM_ROLLUP_FAILED: ErrorCode = ErrorCode(10111);
351
352 pub const CONSUMER_INVALID_DELIVER_SUBJECT: ErrorCode = ErrorCode(10112);
354
355 pub const STREAM_MAX_BYTES_REQUIRED: ErrorCode = ErrorCode(10113);
357
358 pub const CONSUMER_MAX_REQUEST_BATCH_NEGATIVE: ErrorCode = ErrorCode(10114);
360
361 pub const CONSUMER_MAX_REQUEST_EXPIRES_TO_SMALL: ErrorCode = ErrorCode(10115);
363
364 pub const CONSUMER_MAX_DELIVER_BACKOFF: ErrorCode = ErrorCode(10116);
366
367 pub const STREAM_INFO_MAX_SUBJECTS: ErrorCode = ErrorCode(10117);
369
370 pub const STREAM_OFFLINE: ErrorCode = ErrorCode(10118);
372
373 pub const CONSUMER_OFFLINE: ErrorCode = ErrorCode(10119);
375
376 pub const NO_LIMITS: ErrorCode = ErrorCode(10120);
378
379 pub const CONSUMER_MAX_PENDING_ACK_EXCESS: ErrorCode = ErrorCode(10121);
381
382 pub const STREAM_MAX_STREAM_BYTES_EXCEEDED: ErrorCode = ErrorCode(10122);
384
385 pub const STREAM_MOVE_AND_SCALE: ErrorCode = ErrorCode(10123);
387
388 pub const STREAM_MOVE_IN_PROGRESS: ErrorCode = ErrorCode(10124);
390
391 pub const CONSUMER_MAX_REQUEST_BATCH_EXCEEDED: ErrorCode = ErrorCode(10125);
393
394 pub const CONSUMER_REPLICAS_EXCEEDS_STREAM: ErrorCode = ErrorCode(10126);
396
397 pub const CONSUMER_NAME_CONTAINS_PATH_SEPARATORS: ErrorCode = ErrorCode(10127);
399
400 pub const STREAM_NAME_CONTAINS_PATH_SEPARATORS: ErrorCode = ErrorCode(10128);
402
403 pub const STREAM_MOVE_NOT_IN_PROGRESS: ErrorCode = ErrorCode(10129);
405
406 pub const STREAM_NAME_EXIST_RESTORE_FAILED: ErrorCode = ErrorCode(10130);
408
409 pub const CONSUMER_CREATE_FILTER_SUBJECT_MISMATCH: ErrorCode = ErrorCode(10131);
411
412 pub const CONSUMER_CREATE_DURABLE_AND_NAME_MISMATCH: ErrorCode = ErrorCode(10132);
414
415 pub const REPLICAS_COUNT_CANNOT_BE_NEGATIVE: ErrorCode = ErrorCode(10133);
417
418 pub const CONSUMER_REPLICAS_SHOULD_MATCH_STREAM: ErrorCode = ErrorCode(10134);
420
421 pub const CONSUMER_METADATA_LENGTH: ErrorCode = ErrorCode(10135);
423
424 pub const CONSUMER_DUPLICATE_FILTER_SUBJECTS: ErrorCode = ErrorCode(10136);
426
427 pub const CONSUMER_MULTIPLE_FILTERS_NOT_ALLOWED: ErrorCode = ErrorCode(10137);
429
430 pub const CONSUMER_OVERLAPPING_SUBJECT_FILTERS: ErrorCode = ErrorCode(10138);
432
433 pub const CONSUMER_EMPTY_FILTER: ErrorCode = ErrorCode(10139);
435
436 pub const SOURCE_DUPLICATE_DETECTED: ErrorCode = ErrorCode(10140);
438
439 pub const SOURCE_INVALID_STREAM_NAME: ErrorCode = ErrorCode(10141);
441
442 pub const MIRROR_INVALID_STREAM_NAME: ErrorCode = ErrorCode(10142);
444
445 pub const SOURCE_MULTIPLE_FILTERS_NOT_ALLOWED: ErrorCode = ErrorCode(10144);
447
448 pub const SOURCE_INVALID_SUBJECT_FILTER: ErrorCode = ErrorCode(10145);
450
451 pub const SOURCE_INVALID_TRANSFORM_DESTINATION: ErrorCode = ErrorCode(10146);
453
454 pub const SOURCE_OVERLAPPING_SUBJECT_FILTERS: ErrorCode = ErrorCode(10147);
456
457 pub const CONSUMER_ALREADY_EXISTS: ErrorCode = ErrorCode(10148);
459
460 pub const CONSUMER_DOES_NOT_EXIST: ErrorCode = ErrorCode(10149);
462
463 pub const MIRROR_MULTIPLE_FILTERS_NOT_ALLOWED: ErrorCode = ErrorCode(10150);
465
466 pub const MIRROR_INVALID_SUBJECT_FILTER: ErrorCode = ErrorCode(10151);
468
469 pub const MIRROR_OVERLAPPING_SUBJECT_FILTERS: ErrorCode = ErrorCode(10152);
471
472 pub const CONSUMER_INACTIVE_THRESHOLD_EXCESS: ErrorCode = ErrorCode(10153);
474}
475
476#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
478pub struct Error {
479 code: usize,
480 err_code: ErrorCode,
481 description: Option<String>,
482}
483
484impl Error {
485 pub fn code(&self) -> usize {
487 self.code
488 }
489
490 pub fn error_code(&self) -> ErrorCode {
492 self.err_code
493 }
494
495 pub fn kind(&self) -> ErrorCode {
496 self.err_code
497 }
498}
499
500impl fmt::Display for Error {
501 fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
502 write!(
503 fmt,
504 "{} (code {}, error code {})",
505 self.description.as_ref().unwrap_or(&"unknown".to_string()),
506 self.code,
507 self.err_code.0,
508 )
509 }
510}
511
512impl error::Error for Error {}