From 3696c9cff494e8714b1af6c7c6884c30fe8439c2 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 24 Dec 2025 00:40:53 +0200 Subject: [PATCH] handletelegram: don't fail migrateChat if getting chat info fails --- pkg/connector/handletelegram.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/pkg/connector/handletelegram.go b/pkg/connector/handletelegram.go index 303a4d05..4408d487 100644 --- a/pkg/connector/handletelegram.go +++ b/pkg/connector/handletelegram.go @@ -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 }