summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-05-06 17:27:39 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-05-08 11:23:20 -0400
commit2aa3cf27311218f2a1ba2e630f4d352968dd87d5 (patch)
tree2badc5433320993d6b6dc436cde335010e5d157e /packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
parentfix indent of `logging.verbose` option (diff)
downloadsharkey-2aa3cf27311218f2a1ba2e630f4d352968dd87d5.tar.gz
sharkey-2aa3cf27311218f2a1ba2e630f4d352968dd87d5.tar.bz2
sharkey-2aa3cf27311218f2a1ba2e630f4d352968dd87d5.zip
debug-log mastodon error responses
Diffstat (limited to 'packages/backend/src/server/api/mastodon/MastodonApiServerService.ts')
-rw-r--r--packages/backend/src/server/api/mastodon/MastodonApiServerService.ts20
1 files changed, 12 insertions, 8 deletions
diff --git a/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts b/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
index 5b682df529..359408d882 100644
--- a/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
+++ b/packages/backend/src/server/api/mastodon/MastodonApiServerService.ts
@@ -46,17 +46,21 @@ export class MastodonApiServerService {
this.serverUtilityService.addCORS(fastify);
this.serverUtilityService.addFlattenedQueryType(fastify);
- fastify.setErrorHandler((error, request, reply) => {
- try {
- const data = getErrorData(error);
- const status = getErrorStatus(error);
+ // Convert JS exceptions into error responses
+ fastify.setErrorHandler((error, _, reply) => {
+ const data = getErrorData(error);
+ const status = getErrorStatus(error);
- this.logger.error(request, data, status);
+ reply.code(status).send(data);
+ });
- reply.code(status).send(data);
- } catch (e) {
- this.logger.logger.error('Recursive error in mastodon API - this is a bug!', { e }, true);
+ // Log error responses (including converted JSON exceptions)
+ fastify.addHook('onSend', (request, reply, payload, done) => {
+ if (reply.statusCode >= 400) {
+ const data = getErrorData(payload);
+ this.logger.error(request, data, reply.statusCode);
}
+ done();
});
// External endpoints