diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-05-06 17:27:39 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-05-08 11:23:20 -0400 |
| commit | 2aa3cf27311218f2a1ba2e630f4d352968dd87d5 (patch) | |
| tree | 2badc5433320993d6b6dc436cde335010e5d157e /packages/backend/src/server/api/mastodon/MastodonApiServerService.ts | |
| parent | fix indent of `logging.verbose` option (diff) | |
| download | sharkey-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.ts | 20 |
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 |