feat: improve error handling and type safety in points modal processing

This commit is contained in:
2025-10-03 23:41:11 -05:00
parent 2a399cbf35
commit 1a9eabb7af
3 changed files with 80 additions and 61 deletions

View File

@@ -8,17 +8,13 @@ bot.on(Events.ClientReady, () => {
// ============================================
// 🛡️ HANDLER GLOBAL PARA ERRORES DE DISCORD.JS
// ============================================
// Interceptar errores específicos de ModalSubmitInteraction con UserSelect
process.on('uncaughtException', (error) => {
process.on('uncaughtException', (error: Error) => {
// Interceptar errores específicos de Discord.js GuildMemberManager
if (error.message?.includes("Cannot read properties of undefined (reading 'id')") &&
error.stack?.includes('GuildMemberManager._add')) {
logger.warn('🔧 Discord.js bug interceptado: GuildMemberManager error con UserSelect en modal');
// @ts-ignore
logger.warn('Stack trace:', error.stack);
// NO terminar el proceso, solo logear el error
return;
}
@@ -29,24 +25,23 @@ bot.on(Events.ClientReady, () => {
process.exit(1);
});
process.on('unhandledRejection', (reason, promise) => {
process.on('unhandledRejection', (reason: unknown) => {
// Interceptar rechazos relacionados con el mismo bug
if (reason && typeof reason === 'object' &&
if (reason &&
typeof reason === 'object' &&
reason !== null &&
'message' in reason &&
// @ts-ignore
reason.message?.includes("Cannot read properties of undefined (reading 'id')")) {
typeof (reason as any).message === 'string' &&
(reason as any).message.includes("Cannot read properties of undefined (reading 'id')")) {
logger.warn('🔧 Discord.js promise rejection interceptada: GuildMemberManager error');
// @ts-ignore
logger.warn('Reason:', reason);
// NO terminar el proceso
return;
}
// Para otras promesas rechazadas, logear pero continuar
// @ts-ignore
logger.error('🚨 UnhandledRejection:', reason);
logger.error('🚨 UnhandledRejection:', reason as Error);
});
// ============================================