handletelegram: don't fail migrateChat if getting chat info fails

This commit is contained in:
Tulir Asokan
2025-12-24 00:40:53 +02:00
parent d83c0ede15
commit 3696c9cff4
+19 -2
View File
@@ -632,9 +632,26 @@ func (t *TelegramClient) migrateChat(ctx context.Context, oldPortalKey, newPorta
// If the source is deleted, then it doesn't matter, any existing target will already be correct
info, err := t.GetChatInfo(ctx, portal)
if err != nil {
return fmt.Errorf("failed to get chat info for new portal: %w", err)
zerolog.Ctx(ctx).Err(err).Msg("Failed to get chat info after re-ID")
if tgerr.Is(err, tg.ErrChannelPrivate) {
go func() {
select {
case <-time.After(5 * time.Second):
case <-ctx.Done():
return
}
zerolog.Ctx(ctx).Debug().Msg("Retrying GetChatInfo after re-ID")
info, err := t.GetChatInfo(ctx, portal)
if err != nil {
zerolog.Ctx(ctx).Err(err).Msg("Failed to get chat info after re-ID retry")
} else {
portal.UpdateInfo(ctx, info, t.userLogin, nil, time.Time{})
}
}()
}
} else {
portal.UpdateInfo(ctx, info, t.userLogin, nil, time.Time{})
}
portal.UpdateInfo(ctx, info, t.userLogin, nil, time.Time{})
}
return nil
}