dev
dev4w ago

what's the correct way of reporting unhandled errors to Datadog (or similar services)?

I tried multiple things to make sure that Datadog sees the actual error being thrown, but no matter what I did, the error is always the same (screenshot attached). This is my current logger (it was much simpler before, but I tried to recursively find the cause error with no luck).
import { TRPCError } from '@trpc/server';
import * as trpcExpress from '@trpc/server/adapters/express';
import express from 'express';
import logger from 'server/logger';
import { createContext } from 'server/trpc/context';
import { trpcRouter } from 'server/trpc/mainRouter';

function getLoggableError(error: unknown): unknown {
if (error instanceof Error && error.cause instanceof Error) {
return getLoggableError(error.cause);
}
return error;
}

export function initTRPC(app: express.Application) {
app.use(
'/api/trpc',
trpcExpress.createExpressMiddleware({
router: trpcRouter,
createContext: createContext,
onError: ({ error, path, type, input }) => {
if (error instanceof TRPCError && error.code === 'INTERNAL_SERVER_ERROR') {
const loggable = getLoggableError(error);
logger.error(loggable, {
path,
type,
input: type === 'query' ? input : undefined,
trpcCode: error.code,
trpcMessage: error.message,
trpcStack: error.stack,
});
}
},
})
);
}
import { TRPCError } from '@trpc/server';
import * as trpcExpress from '@trpc/server/adapters/express';
import express from 'express';
import logger from 'server/logger';
import { createContext } from 'server/trpc/context';
import { trpcRouter } from 'server/trpc/mainRouter';

function getLoggableError(error: unknown): unknown {
if (error instanceof Error && error.cause instanceof Error) {
return getLoggableError(error.cause);
}
return error;
}

export function initTRPC(app: express.Application) {
app.use(
'/api/trpc',
trpcExpress.createExpressMiddleware({
router: trpcRouter,
createContext: createContext,
onError: ({ error, path, type, input }) => {
if (error instanceof TRPCError && error.code === 'INTERNAL_SERVER_ERROR') {
const loggable = getLoggableError(error);
logger.error(loggable, {
path,
type,
input: type === 'query' ? input : undefined,
trpcCode: error.code,
trpcMessage: error.message,
trpcStack: error.stack,
});
}
},
})
);
}
No description
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?