summaryrefslogtreecommitdiff
path: root/packages/backend/src/queue
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-05-22 12:27:54 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-06-06 22:20:17 -0400
commit2cba0ada3cdf6b7ee37fa5c0b54134160be657a9 (patch)
tree38f6b59f7c60eda90677bc178974f71c877afe0d /packages/backend/src/queue
parentrender error cause in render-inline-error.ts (diff)
downloadsharkey-2cba0ada3cdf6b7ee37fa5c0b54134160be657a9.tar.gz
sharkey-2cba0ada3cdf6b7ee37fa5c0b54134160be657a9.tar.bz2
sharkey-2cba0ada3cdf6b7ee37fa5c0b54134160be657a9.zip
more use of identifiable errors, improvements to inner error rendering, and more heuristics for is-retryable-error
Diffstat (limited to 'packages/backend/src/queue')
-rw-r--r--packages/backend/src/queue/processors/DeliverProcessorService.ts23
-rw-r--r--packages/backend/src/queue/processors/InboxProcessorService.ts2
-rw-r--r--packages/backend/src/queue/processors/ScheduleNotePostProcessorService.ts2
-rw-r--r--packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts9
-rw-r--r--packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts9
5 files changed, 15 insertions, 30 deletions
diff --git a/packages/backend/src/queue/processors/DeliverProcessorService.ts b/packages/backend/src/queue/processors/DeliverProcessorService.ts
index 5a16496011..fc4c8bb814 100644
--- a/packages/backend/src/queue/processors/DeliverProcessorService.ts
+++ b/packages/backend/src/queue/processors/DeliverProcessorService.ts
@@ -133,23 +133,18 @@ export class DeliverProcessorService {
}
});
- if (res instanceof StatusError) {
+ if (res instanceof StatusError && !res.isRetryable) {
// 4xx
- if (!res.isRetryable) {
- // 相手が閉鎖していることを明示しているため、配送停止する
- if (job.data.isSharedInbox && res.statusCode === 410) {
- this.federatedInstanceService.fetchOrRegister(host).then(i => {
- this.federatedInstanceService.update(i.id, {
- suspensionState: 'goneSuspended',
- });
+ // 相手が閉鎖していることを明示しているため、配送停止する
+ if (job.data.isSharedInbox && res.statusCode === 410) {
+ this.federatedInstanceService.fetchOrRegister(host).then(i => {
+ this.federatedInstanceService.update(i.id, {
+ suspensionState: 'goneSuspended',
});
- throw new Bull.UnrecoverableError(`${host} is gone`);
- }
- throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
+ });
+ throw new Bull.UnrecoverableError(`${host} is gone`);
}
-
- // 5xx etc.
- throw new Error(`${res.statusCode} ${res.statusMessage}`);
+ throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
} else {
// DNS error, socket error, timeout ...
throw res;
diff --git a/packages/backend/src/queue/processors/InboxProcessorService.ts b/packages/backend/src/queue/processors/InboxProcessorService.ts
index a069d390db..612b16dfbf 100644
--- a/packages/backend/src/queue/processors/InboxProcessorService.ts
+++ b/packages/backend/src/queue/processors/InboxProcessorService.ts
@@ -228,7 +228,7 @@ export class InboxProcessorService implements OnApplicationShutdown {
const ldHost = this.utilityService.extractDbHost(authUser.user.uri);
if (!this.utilityService.isFederationAllowedHost(ldHost)) {
- throw new Bull.UnrecoverableError(`Blocked request: ${ldHost}`);
+ throw new Bull.UnrecoverableError(`skip: request host is blocked: ${ldHost}`);
}
} else {
throw new Bull.UnrecoverableError(`skip: http-signature verification failed and no LD-Signature. keyId=${signature.keyId}`);
diff --git a/packages/backend/src/queue/processors/ScheduleNotePostProcessorService.ts b/packages/backend/src/queue/processors/ScheduleNotePostProcessorService.ts
index d96199c201..73088f3312 100644
--- a/packages/backend/src/queue/processors/ScheduleNotePostProcessorService.ts
+++ b/packages/backend/src/queue/processors/ScheduleNotePostProcessorService.ts
@@ -133,7 +133,7 @@ export class ScheduleNotePostProcessorService {
reason: renderInlineError(err),
});
await this.noteScheduleRepository.remove(data);
- this.logger.error(`Scheduled note failed:`, err);
+ this.logger.error(`Scheduled note failed: ${renderInlineError(err)}`);
throw err;
});
await this.noteScheduleRepository.remove(data);
diff --git a/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts b/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts
index 61042ff718..f9fcd1e928 100644
--- a/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts
+++ b/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts
@@ -71,14 +71,9 @@ export class SystemWebhookDeliverProcessorService {
latestStatus: res instanceof StatusError ? res.statusCode : 1,
});
- if (res instanceof StatusError) {
+ if (res instanceof StatusError && !res.isRetryable) {
// 4xx
- if (!res.isRetryable) {
- throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
- }
-
- // 5xx etc.
- throw new Error(`${res.statusCode} ${res.statusMessage}`);
+ throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
} else {
// DNS error, socket error, timeout ...
throw res;
diff --git a/packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts b/packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts
index 9ec630ef70..0208ce6038 100644
--- a/packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts
+++ b/packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts
@@ -69,14 +69,9 @@ export class UserWebhookDeliverProcessorService {
latestStatus: res instanceof StatusError ? res.statusCode : 1,
});
- if (res instanceof StatusError) {
+ if (res instanceof StatusError && !res.isRetryable) {
// 4xx
- if (!res.isRetryable) {
- throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
- }
-
- // 5xx etc.
- throw new Error(`${res.statusCode} ${res.statusMessage}`);
+ throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
} else {
// DNS error, socket error, timeout ...
throw res;