Skip to content

[BUG] Regularly experiencing session disconnection with session_expired #22

@gwhitelaw

Description

@gwhitelaw

Bug Description

Following many hours of stable connections, I notice sessions expiring for no reason.
Nothing else has changed with my device or phone.

To Reproduce

Steps to reproduce the behavior:

  1. Run command termly start ./ --ai "claude code" --ai-args "--continue"
  2. Do action: scan QR code on phone. I am restoring a session with teams/sub-agents.
  3. See error: Session expires
⚠️   No response from server for 13.0s - forcing reconnection
⚠️   WebSocket closed: Input paused until reconnection
⠇  Reconnecting in 2 seconds... (attempt 1/10)⚠️   Cannot send message: WebSocket not open
⚠️   Cannot send message: WebSocket not open
⚠️   Cannot send message: WebSocket not open
....
⚠️   Cannot send message: WebSocket not open
✅ Reconnected to server!

⚠️   Session has expired or was disconnected. Please create a new pairing.
Please restart the CLI session:
  termly start
❌ Session invalid: session_expired

Expected Behavior

I expect the session to stay alive indefinitely.

Actual Behavior

Shuts down after a a minute or so (max)

Environment

Please complete the following information:

  • OS: OSX Tahoe
  • Node.js version: v24.13.0
  • Termly CLI version: 1.7.0
  • AI tool: [Claude Code
  • Environment: Local

Logs

Details
[2026-02-08 22:50:41] INFO: Environment: Production
[2026-02-08 22:50:41] INFO: Session 09967808-36eb-446c-8858-202d23a9f9c4 added to registry
[2026-02-08 22:50:41] INFO: Connecting to server...
[2026-02-08 22:50:41] INFO: Connected to server
[2026-02-08 22:51:37] INFO: Pairing complete!
[2026-02-08 22:51:37] INFO: Connected!
[2026-02-08 22:51:37] INFO: Starting Claude Code...
[2026-02-08 22:51:37] INFO: Claude Code started (PID: 52159)
[2026-02-08 22:51:38] INFO: Mobile device connected
[2026-02-08 22:56:39] INFO: Environment: Production
[2026-02-08 22:56:39] INFO: Session 0083276a-9019-4264-ad12-fe96a05a3a66 added to registry
[2026-02-08 22:56:39] INFO: Connecting to server...
[2026-02-08 22:56:39] INFO: Connected to server
[2026-02-08 22:57:04] INFO: Pairing complete!
[2026-02-08 22:57:04] INFO: Connected!
[2026-02-08 22:57:04] INFO: Starting Claude Code...
[2026-02-08 22:57:04] INFO: Claude Code started (PID: 59696)
[2026-02-08 22:57:05] INFO: Mobile device connected
[2026-02-08 22:58:27] INFO: Mobile device disconnected
[2026-02-08 22:58:29] INFO: Terminal size restored to 255x63
[2026-02-08 23:18:31] INFO: Mobile device disconnected
[2026-02-08 23:18:33] INFO: Terminal size restored to 255x31
[2026-02-08 23:19:45] INFO: Mobile device disconnected
[2026-02-08 23:19:47] INFO: Terminal size restored to 255x31
[2026-02-08 23:22:12] INFO: Mobile device disconnected
[2026-02-08 23:22:14] INFO: Terminal size restored to 255x31
[2026-02-08 23:24:11] INFO: Mobile device disconnected
[2026-02-08 23:24:13] INFO: Terminal size restored to 255x31
[2026-02-08 23:34:35] INFO: Mobile device disconnected
[2026-02-08 23:34:37] INFO: Terminal size restored to 255x31
[2026-02-09 00:47:27] INFO: Mobile device disconnected
[2026-02-09 00:47:29] INFO: Terminal size restored to 255x31
[2026-02-09 07:40:23] INFO: Mobile device connected
[2026-02-09 07:41:39] INFO: Mobile device disconnected
[2026-02-09 07:41:41] INFO: Terminal size restored to 255x31
[2026-02-09 07:47:08] INFO: Mobile device disconnected
[2026-02-09 07:47:10] INFO: Terminal size restored to 255x31
[2026-02-09 07:48:21] INFO: Mobile device disconnected
[2026-02-09 07:48:23] INFO: Terminal size restored to 255x31
[2026-02-09 07:51:46] INFO: Mobile device disconnected
[2026-02-09 07:51:48] INFO: Terminal size restored to 255x31
[2026-02-09 07:59:23] INFO: Mobile device disconnected
[2026-02-09 07:59:25] INFO: Terminal size restored to 255x31
[2026-02-09 08:00:38] INFO: Mobile device disconnected
[2026-02-09 08:00:40] INFO: Terminal size restored to 255x31
[2026-02-09 08:02:06] INFO: Mobile device disconnected
[2026-02-09 08:02:08] INFO: Terminal size restored to 255x31
[2026-02-09 08:18:57] INFO: Mobile device disconnected
[2026-02-09 08:18:59] INFO: Terminal size restored to 255x31
[2026-02-09 08:24:18] INFO: Mobile device disconnected
[2026-02-09 08:24:20] INFO: Terminal size restored to 255x31
[2026-02-09 08:28:34] INFO: Mobile device disconnected
[2026-02-09 08:28:36] INFO: Terminal size restored to 255x31
[2026-02-09 08:30:22] INFO: Mobile device disconnected
[2026-02-09 08:30:24] INFO: Terminal size restored to 255x31
[2026-02-09 08:36:53] INFO: Mobile device disconnected
[2026-02-09 08:36:55] INFO: Terminal size restored to 255x31
[2026-02-09 08:57:31] INFO: Mobile device disconnected
[2026-02-09 08:57:33] INFO: Terminal size restored to 255x31
[2026-02-09 09:28:41] INFO: Mobile device disconnected
[2026-02-09 09:28:43] INFO: Terminal size restored to 255x31
[2026-02-09 09:45:45] INFO: Mobile device disconnected
[2026-02-09 09:45:47] INFO: Terminal size restored to 255x31
[2026-02-09 10:16:39] INFO: Mobile device disconnected
[2026-02-09 10:16:41] INFO: Terminal size restored to 255x31
[2026-02-09 10:29:29] INFO: Mobile device disconnected
[2026-02-09 10:29:31] INFO: Terminal size restored to 255x31
[2026-02-09 10:29:44] INFO: Mobile device disconnected
[2026-02-09 10:29:46] INFO: Terminal size restored to 255x31
[2026-02-09 10:35:13] INFO: Mobile device disconnected
[2026-02-09 10:35:15] INFO: Terminal size restored to 255x31
[2026-02-09 10:50:28] WARN: No response from server for 13.0s - forcing reconnection
[2026-02-09 10:50:28] WARN: WebSocket closed: Input paused until reconnection
[2026-02-09 10:50:41] ERROR: Session invalid: session_expired
[2026-02-09 10:52:02] INFO: Environment: Production
[2026-02-09 10:52:02] INFO: Session cf4f81a3-1bc4-426c-a720-9c3eb3f4c42b added to registry
[2026-02-09 10:52:02] INFO: Connecting to server...
[2026-02-09 10:52:07] INFO: Connected to server
[2026-02-09 10:52:16] INFO: Pairing complete!
[2026-02-09 10:52:16] INFO: Connected!
[2026-02-09 10:52:16] INFO: Starting Claude Code...
[2026-02-09 10:52:16] INFO: Claude Code started (PID: 20195)
[2026-02-09 10:54:18] WARN: No response from server for 13.0s - forcing reconnection
[2026-02-09 10:54:18] WARN: WebSocket closed: Input paused until reconnection
[2026-02-09 10:54:24] ERROR: Session invalid: session_expired
[2026-02-09 11:05:25] INFO: Environment: Production
[2026-02-09 11:05:25] INFO: Session 9fb309eb-ac2d-4dcf-be47-67d1cecb2e29 added to registry
[2026-02-09 11:05:25] INFO: Connecting to server...
[2026-02-09 11:05:25] INFO: Connected to server
[2026-02-09 11:05:51] INFO: Pairing complete!
[2026-02-09 11:05:51] INFO: Connected!
[2026-02-09 11:05:51] INFO: Starting Claude Code...
[2026-02-09 11:05:51] INFO: Claude Code started (PID: 21069)
[2026-02-09 11:05:51] INFO: Mobile device connected
[2026-02-09 11:06:57] WARN: No response from server for 13.0s - forcing reconnection
[2026-02-09 11:06:57] WARN: WebSocket closed: Input paused until reconnection
[2026-02-09 11:07:04] ERROR: Session invalid: session_expired
[2026-02-09 11:07:56] INFO: Environment: Production
[2026-02-09 11:07:56] INFO: Session fb0b5cbb-deb6-4269-90f2-99ed3e001714 added to registry
[2026-02-09 11:07:56] INFO: Connecting to server...
[2026-02-09 11:07:57] INFO: Connected to server
[2026-02-09 11:08:01] INFO: Pairing complete!
[2026-02-09 11:08:01] INFO: Connected!
[2026-02-09 11:08:01] INFO: Starting Claude Code...
[2026-02-09 11:08:01] INFO: Claude Code started (PID: 21422)
[2026-02-09 11:08:02] INFO: Mobile device connected
[2026-02-09 11:09:05] INFO: Mobile device disconnected
[2026-02-09 11:09:07] INFO: Terminal size restored to 255x63
[2026-02-09 11:09:19] INFO: Mobile device disconnected
[2026-02-09 11:09:21] INFO: Terminal size restored to 255x63
[2026-02-09 11:09:43] INFO: Mobile device disconnected
[2026-02-09 11:09:45] INFO: Terminal size restored to 255x63
[2026-02-09 11:15:58] INFO: Mobile device disconnected
[2026-02-09 11:16:00] INFO: Terminal size restored to 255x63
[2026-02-09 11:18:13] INFO: Mobile device disconnected
[2026-02-09 11:18:15] INFO: Terminal size restored to 255x63
[2026-02-09 11:38:58] WARN: No response from server for 13.0s - forcing reconnection
[2026-02-09 11:38:58] WARN: WebSocket closed: Input paused until reconnection
[2026-02-09 11:39:02] ERROR: Session invalid: session_expired
[2026-02-09 12:10:48] INFO: Environment: Production
[2026-02-09 12:10:52] INFO: Session 6a2ab171-9953-44fc-995a-27871ede4a10 added to registry
[2026-02-09 12:10:52] INFO: Connecting to server...
[2026-02-09 12:11:18] INFO: Connected to server
[2026-02-09 12:15:28] INFO: Pairing complete!
[2026-02-09 12:15:28] INFO: Connected!
[2026-02-09 12:15:28] INFO: Starting Claude Code...
[2026-02-09 12:15:28] INFO: Claude Code started (PID: 26216)
[2026-02-09 12:15:28] INFO: Mobile device connected
[2026-02-09 12:16:28] INFO: Mobile device disconnected
[2026-02-09 12:16:30] INFO: Terminal size restored to 244x79
[2026-02-09 12:17:04] INFO: Mobile device disconnected
[2026-02-09 12:17:06] INFO: Terminal size restored to 244x79
[2026-02-09 12:25:05] WARN: No response from server for 13.0s - forcing reconnection
[2026-02-09 12:25:05] WARN: WebSocket closed: Input paused until reconnection
[2026-02-09 12:25:08] ERROR: Session invalid: session_expired
[2026-02-09 12:26:53] INFO: Environment: Production
[2026-02-09 12:26:53] INFO: Session 11c8dfcd-68e3-43d4-85d1-c5eb16f1faae added to registry
[2026-02-09 12:26:53] INFO: Connecting to server...
[2026-02-09 12:26:53] INFO: Connected to server
[2026-02-09 12:27:10] INFO: Pairing complete!
[2026-02-09 12:27:10] INFO: Connected!
[2026-02-09 12:27:10] INFO: Starting Claude Code...
[2026-02-09 12:27:10] INFO: Claude Code started (PID: 28048)
[2026-02-09 12:27:11] INFO: Mobile device connected
[2026-02-09 12:28:00] WARN: No response from server for 13.0s - forcing reconnection
[2026-02-09 12:28:00] WARN: WebSocket closed: Input paused until reconnection
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:01] WARN: Cannot send message: WebSocket not open
[2026-02-09 12:28:06] ERROR: Session invalid: session_expired
[2026-02-09 12:30:31] INFO: Environment: Production
[2026-02-09 12:30:31] INFO: Session 2edab5e2-c0fe-41a4-ae95-3d9fd29258a9 added to registry
[2026-02-09 12:30:31] INFO: Connecting to server...
[2026-02-09 12:30:31] INFO: Connected to server
[2026-02-09 12:30:38] INFO: Pairing complete!
[2026-02-09 12:30:38] INFO: Connected!
[2026-02-09 12:30:38] INFO: Starting Claude Code...
[2026-02-09 12:30:38] INFO: Claude Code started (PID: 28422)
[2026-02-09 12:30:38] INFO: Mobile device connected
[2026-02-09 12:32:09] INFO: Mobile device disconnected
[2026-02-09 12:32:11] INFO: Terminal size restored to 244x19
Logs
Paste relevant logs from ~/.termly/logs/cli.log (or %USERPROFILE%\.termly\logs\cli.log on Windows)

Please redact any sensitive information!

Screenshots

If applicable, add screenshots to help explain your problem.

Additional Context

Add any other context about the problem here.

Possible Solution

If you have ideas about what might be causing this or how to fix it, please share!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions