From 360487e3764ce0bf9c872c6ed77e25d8fa220ca1 Mon Sep 17 00:00:00 2001 From: Brad Murray Date: Wed, 11 Feb 2026 17:50:30 -0500 Subject: [PATCH 1/2] Try again to fix handling nil cookies in logged out clients --- pkg/connector/client.go | 15 ++++++++++----- pkg/linkedingo/client.go | 4 ++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pkg/connector/client.go b/pkg/connector/client.go index 9a41a5e..8d1c8e6 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -62,12 +62,18 @@ func NewLinkedInClient(ctx context.Context, lc *LinkedInConnector, login *bridge userLogin: login, conversationLastRead: map[linkedingo.URN]jsontime.UnixMilli{}, } + meta := login.Metadata.(*UserLoginMetadata) + cookies := meta.Cookies + if cookies == nil { + zerolog.Ctx(ctx).Warn().Msg("No cookies found in login metadata, using empty cookie jar") + cookies = linkedingo.NewEmptyStringCookieJar() + } client.client = linkedingo.NewClient( ctx, linkedingo.NewURN(login.ID), - login.Metadata.(*UserLoginMetadata).Cookies, - login.Metadata.(*UserLoginMetadata).XLIPageInstance, - login.Metadata.(*UserLoginMetadata).XLITrack, + cookies, + meta.XLIPageInstance, + meta.XLITrack, linkedingo.Handlers{ Heartbeat: func(ctx context.Context) { if login.BridgeState.GetPrevUnsent().StateEvent != status.StateConnected { @@ -149,8 +155,7 @@ func (l *LinkedInClient) Disconnect() { } func (l *LinkedInClient) IsLoggedIn() bool { - cookies := l.userLogin.Metadata.(*UserLoginMetadata).Cookies - return cookies != nil && cookies.GetCookie(linkedingo.LinkedInCookieJSESSIONID) != "" + return l.client.IsLoggedIn() } func (l *LinkedInClient) IsThisUser(ctx context.Context, userID networkid.UserID) bool { diff --git a/pkg/linkedingo/client.go b/pkg/linkedingo/client.go index 73c4080..0a0bc5a 100644 --- a/pkg/linkedingo/client.go +++ b/pkg/linkedingo/client.go @@ -105,6 +105,10 @@ func NewClient(ctx context.Context, userEntityURN URN, jar *StringCookieJar, pag return cli } +func (c *Client) IsLoggedIn() bool { + return c.jar.GetCookie(LinkedInCookieJSESSIONID) != "" +} + type Handlers struct { Heartbeat func(context.Context) ClientConnection func(context.Context, *ClientConnection) From faff6d2c3b19c8401f2956865eefd7da4ce494a8 Mon Sep 17 00:00:00 2001 From: Brad Murray Date: Wed, 11 Feb 2026 17:57:06 -0500 Subject: [PATCH 2/2] Don't logout if we're not logged in --- pkg/connector/client.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/connector/client.go b/pkg/connector/client.go index 8d1c8e6..881871b 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -163,6 +163,9 @@ func (l *LinkedInClient) IsThisUser(ctx context.Context, userID networkid.UserID } func (l *LinkedInClient) LogoutRemote(ctx context.Context) { + if !l.IsLoggedIn() { + return + } if err := l.client.Logout(ctx); err != nil { zerolog.Ctx(ctx).Error().Err(err).Msg("error logging out of remote") }